>  기사  >  백엔드 개발  >  PHP는 문자열이 반복되는지 확인합니다.

PHP는 문자열이 반복되는지 확인합니다.

尚
원래의
2019-10-29 16:39:574163검색

PHP는 문자열이 반복되는지 확인합니다.

PHP는 문자열에 반복되는 문자가 있는지 확인합니다.

방법 1,

1. 문자 배열

2. Arrays.sort(char[])를 사용하여 문자 배열을 정렬한 다음, 마지막 문자가 아닌 경우 정렬된 전체 배열을 하나씩 순회합니다. 현재 문자 및 기타 다음 문자가 동일하면 false를 직접 반환하고, 그렇지 않으면 순회를 계속합니다. 모든 요소가 다음 문자와 다르거나 마지막 문자가 순회되면 반복되는 문자가 없는 것으로 간주됩니다. , true가 반환됩니다

#🎜 🎜#3. 또한 null 또는 길이가 0이고 반복되는 문자가 없는 문자열의 경우 true를 반환합니다

방법 2,

해시 테이블을 생성하고 문자열을 순회하며, 해시 테이블에 해당 문자가 포함되어 있지 않으면 false를 반환하고, 반복되는 문자가 없으면 true를 반환합니다.

방법 3,


위의 두 가지 방법 모두 추가 공간이 필요하면 String.indexOf를 사용할 수 있습니다. (char ch, int fromIndex), 문자열의 문자를 순회하고 두 번째에서 마지막 문자까지 순회합니다. 각 문자에 대해 이후에 반복되는 문자가 있는지 확인하십시오. 그렇다면 반복되는 문자가 없으면 true를 반환하십시오.

구현 코드:


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;
 
    }
}

권장:

php 서버

위 내용은 PHP는 문자열이 반복되는지 확인합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.