•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

php推断字符串是不是反复【php问题】,php,字符串

摘要: PHP推断字符串是不是有反复字符:要领一、1、将字符串转成字符数组2、运用Arrays.sort(char[])对字符数组举行排序,然后,逐一遍历全部排序后的数组,假如不是末了一个...

PHP推断字符串是不是有反复字符:

要领一、

1、将字符串转成字符数组

2、运用Arrays.sort(char[])对字符数组举行排序,然后,逐一遍历全部排序后的数组,假如不是末了一个字符,而且假如当前字符和厥背面的字符雷同,那末就直接返回false,不然继承遍历,假如一切的元素和厥背面都不雷同或许已遍历到末了一个字符了,就认为是没有反复字符,即返回true

3、别的,关于null或许长度是0的字符串,没有反复字符,返回true

要领二、

建立哈希表,遍历字符串,假如哈希表中不包括该字符,就增加进去,假如包括,就返回false,假如没有反复的字符,那末末了返回true。

要领三、

上述两种要领均须要分外拓荒空间,假如想不拓荒空间,那末能够借助String.indexOf(char ch, int fromIndex),遍历字符串中的字符,遍历到倒数第二个字符即可。对每一个字符,推断厥后是不是有反复的字符即可,假如有就返回false,假如没有反复的字符,那末返回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推断字符串是不是反复的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号