PHP détermine si une chaîne comporte des caractères répétés :
Méthode 1,
1 Convertir la chaîne en un tableau de caractères
2. Utilisez Arrays.sort(char[]) pour trier le tableau de caractères, puis parcourez l'intégralité du tableau trié un par un s'il ne s'agit pas du dernier caractère et si le caractère actuel est le même que le caractère qui le suit. , puis retournez false directement. , sinon continuez à parcourir. Si tous les éléments sont différents de ce qui suit ou si le dernier caractère a été parcouru, on considère qu'il n'y a pas de caractères répétés, c'est-à-dire que true est renvoyé . 3. De plus, pour null ou la longueur est 0 La chaîne n'a pas de caractères répétés et renvoie vraiMéthode 2. Créez une table de hachage et parcourez la chaîne si le caractère ne l'est pas. inclus dans la table de hachage, ajoutez-le. S'il est inclus, il renvoie false, s'il n'y a pas de caractères répétés, alors il renvoie finalement true. Méthode 3.public class Solution { /* * @param str: A string * @return: a boolean */ public boolean isUnique(String str) { // write your code here /* //思路一 //如果str是null,那么抛出异常 if(str == null){ throw new IllegalArgumentException("invalid parameters"); } //如果str的长度是0或者1,那么没有重复字符,返回true if(str.length() == 0 || str.length() == 1){ return true; } //将字符串转成字符数组 char[] ch = str.toCharArray(); //对数组进行排序 Arrays.sort(ch); //遍历数组,看当前字符是否和后面字符相同,相同就返回false,否则返回true for(int i = 0; i < ch.length-1; i++){ if(ch[i] == ch[i+1]){ return false; } } return true; */ /* //思路二 //如果str是null,那么抛出异常 if(str == null){ throw new IllegalArgumentException("invalid parameters"); } //如果str的长度是0或者1,那么没有重复字符,返回true if(str.length() == 0 || str.length() == 1){ return true; } //创建hash表,将字符串字符存到hash表中 HashSet<Character> hs = new HashSet<Character>(); for(int i = 0; i < str.length(); i++){ if(hs.contains(str.charAt(i))){ return false;//hash表中有相同的字符,那么说明有重复的字符 } hs.add(str.charAt(i)); } return true; */ //思路三 //如果str是null,那么抛出异常 if(str == null){ throw new IllegalArgumentException("invalid parameters"); } //如果str的长度是0或者1,那么没有重复字符,返回true if(str.length() == 0 || str.length() == 1){ return true; } //从前向后遍历字符串,对每个字符,调用String.indexOf()看其后面是否有相同的字符,如果有返回false,否则最后返回true for(int i = 0; i < str.length()-1; i++){ if(str.indexOf(str.charAt(i), i+1) != -1){ return false; } } return true; } }
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!