Comment trouver le premier caractère non répétitif d'une chaîne ?
Par exemple, dans la chaîne « Silent King Shen Silent Two », le premier caractère non répétitif est « 王 », n'est-ce pas ? répété, "mo" a été répété.
public class FindNonRepeatingChar { public static void main(String[] args) { System.out.println(printFirstNonRepeatingChar("沉默王沉沉默二")); System.out.println(printFirstNonRepeatingChar("沉默王沉")); System.out.println(printFirstNonRepeatingChar("沉沉沉")); } private static Character printFirstNonRepeatingChar(String string) { char[] chars = string.toCharArray(); List<Character> discardedChars = new ArrayList<>(); for (int i = 0; i < chars.length; i++) { char c = chars[i]; if (discardedChars.contains(c)) continue; for (int j = i + 1; j < chars.length; j++) { if (c == chars[j]) { discardedChars.add(c); break; } else if (j == chars.length - 1) { return c; } } } return null; } }
Le résultat de sortie est le suivant :
王 默 null
Laissez-moi parler de mes idées :
1) Divisez la chaîne en un tableau de caractères.
2) Déclarez une liste et mettez-y des caractères répétés.
3) La boucle for externe commence à partir du premier caractère. Si elle est déjà dans la liste, passez au tour suivant.
4) La boucle for imbriquée commence à parcourir à partir du caractère suivant (j = i + 1) du premier caractère si elle trouve un double du caractère précédent, ajoutez-le à la liste et sortez de la boucle interne ; Même si je trouve le dernier (j == chars.length - 1), je ne le trouve pas, qui est le premier caractère non répétitif, n'est-ce pas ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!