leetcode-程序员面试金典刷题:判定字符串唯一

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果不使用额外的数据结构,会很加分
来源:力扣(LeetCode)
链接

解题思路

因为看到数据量很小,就直接打算每遇到一个字符就扫一遍其后的字符比较一下了,时间复杂度为n*n

class Solution {
    public boolean isUnique(String astr) {
        //n*n
      
        for (int i=0;i<astr.length();i++){
            for(int index=i+1;index<astr.length();index++){
                if(astr.charAt(index)==astr.charAt(i))
                return false;
            }
        }
        return true;
    }
}

后来看了一下题解,可以使用hashset去重,只要比较一下去重后的字符串和原字符串LEN就可以了,简单明了

class Solution {
    public boolean isUnique(String astr) {
        Set set = new HashSet();  //并不明白为什么是Set引用
        for (int i = 0; i <astr.length() ; i++) {
            set.add(astr.charAt(i)); //注意set获取字符的方法
        }
        return set.size() == astr.length(); 
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容