Sujet de participation à la phase 2 du défi du CSDN
: solution algorithmique
Annuaire d'articles
![insérez la description de l'image ici](https://img-blog.csdnimg.cn/0c91a32ab616447baa80d680eb0668a1.png)
Lien et description du sujet
https://leetcode.cn/problems/check-permutation-lcci/
Mots-clés : trier la table de hachage
Pour juger s'il s'agit de réarrangements de caractères, la longueur doit être égale, et les mêmes caractères sont égaux ;
en fonction de ces deux conditions, vous pouvez utiliser :
- Après tri. comparer les chaînes
- Enregistrez la comparaison du nombre de caractères correspondants (la solution officielle est un peu orientée réponse, les caractères ne sont pas forcément des lettres, il faut donc utiliser la table de hachage)
Méthode 1 : table de hachage
exécuter une capture d'écran
le code
public boolean CheckPermutation(String s1, String s2) {
if (s1.length() != s2.length()) {
return false;
}
Map<Character, Integer> table = new HashMap<>();
for (int i = 0; i < s1.length(); i++) {
table.put(s1.charAt(i), table.getOrDefault(s1.charAt(i), 0) + 1);
}
for (int i = 0; i < s2.length(); i++) {
table.put(s2.charAt(i), table.getOrDefault(s2.charAt(i), 0) - 1);
if (table.getOrDefault(s2.charAt(i), 0) < 0) {
return false;
}
}
return true;
}
Méthode 2 : Réorganiser
exécuter une capture d'écran
le code
public boolean CheckPermutation(String s1, String s2) {
if (s1.length() != s2.length()) {
return false;
}
char[] str1 = s1.toCharArray();
char[] str2 = s2.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return Arrays.equals(str1, str2);
}
fin
Bienvenue pour communiquer dans la zone de commentaires, enregistrez-vous tous les jours et précipitez-vous ! ! !