美文网首页leetcode
leetcode-程序员面试金典刷题:判定字符串唯一

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

作者: 荣荣的靓仔小馒头 | 来源:发表于2020-05-15 11:01 被阅读0次

实现一个算法,确定一个字符串 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(); 
    }
}

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/jvxxohtx.html