码迷,mamicode.com
首页 > 编程语言 > 详细

实现一个算法,确定一个字符串 s 的所有字符是否全都不同

时间:2020-06-06 00:33:12      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:没有   tin   ash   额外   指定   i++   结构   实现   false   

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode"
输出: false
示例 2:

输入: s = "abc"
输出: true
限制:

0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分.

//我的解决方案
/**
根据set存储结构的特性,把字符串拆分后放到set中,这样可以去重
在拿原先的字符串长度和set的长度对比,如果相等说明set中没有重复的,不相等说明set进行了去重操作,所以原先的字符串有重复的

*/
class Solution {
    public boolean isUnique(String astr) {
          char[] chars = astr.toCharArray();
                HashSet hashSet = new HashSet();
        for (char aChar : chars) {
            hashSet.add(aChar);
        }


            return chars.length==hashSet.size()?true:false;


    }
}

class Solution {
    public boolean isUnique(String astr) {
        for(int i=0;i<astr.length();i++){
            //indexOf(int ch, int fromIndex) 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。 
            //返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。 
            if(astr.indexOf(astr.charAt(i),i+1) > -1)  //拿当前的字符串,到该字符串后面进行检索是否有该字符
                return false;
        }
        return true;
    }
}


    public static boolean isUnique3(String astr) {
    for (char a : astr.toCharArray()) {
        //如果操作的字符从前后检索位置不一样说明有重复字符
        if(astr.lastIndexOf(a) != astr.indexOf(a)){
            return false;
        };
    }
    return true;
}

实现一个算法,确定一个字符串 s 的所有字符是否全都不同

标签:没有   tin   ash   额外   指定   i++   结构   实现   false   

原文地址:https://www.cnblogs.com/love-xk/p/13052963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!