結果
| 問題 |
No.69 文字を自由に並び替え
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-05-19 20:15:10 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 136 ms / 5,000 ms |
| コード長 | 1,374 bytes |
| コンパイル時間 | 3,998 ms |
| コンパイル使用メモリ | 84,768 KB |
| 実行使用メモリ | 54,280 KB |
| 最終ジャッジ日時 | 2024-10-01 22:59:28 |
| 合計ジャッジ時間 | 6,878 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 |
ソースコード
package yukicoder.beginner.anagram;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class AnagramJudger {
public static void main(String[] args) {
new AnagramJudger().executeJudge();
}
private void executeJudge() {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String firstString = sc.next();
String secondString = sc.next();
boolean res = judge(firstString, secondString);
if(res) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
private boolean judge(String firstString, String secondString) {
Map<Character, Integer> firstStrNumMap = paseToStrNumMap(firstString);
Map<Character, Integer> secondStrNumMap = paseToStrNumMap(secondString);
for (Entry<Character, Integer> strNumPair : firstStrNumMap.entrySet()) {
if(secondStrNumMap.containsKey(strNumPair.getKey()) == false) {
return false;
}
if(secondStrNumMap.getOrDefault(strNumPair.getKey(), -1) != strNumPair.getValue()) {
return false;
}
}
return true;
}
private Map<Character, Integer> paseToStrNumMap(String firstString) {
Map<Character, Integer> res = new HashMap<>();
for (int i = 0; i < firstString.length(); i++) {
Character target = firstString.charAt(i);
res.put(target, res.getOrDefault(target, 0) + 1);
}
return res;
}
}