LintCode 判断字符串是否没有重复字符

题目

实现一个算法确定字符串中的字符是否均唯一出现

样例
给出"abc",返回true

给出"aab",返回false

挑战
如果不使用额外的存储空间,你的算法该如何改变?

分析

用两种方法,一种借助set没有重复元素的特点,如果add不进去,就说明重复了,就直接returnfalse
第二种方法,设立一个数组,用来判断字符出现的次数,第二次出现就判断为false

代码

public class Solution {
    /**
     * @param str: a string
     * @return: a boolean
     */
    public boolean isUnique(String str) {
        // write your code here
                Set set = new HashSet();
        for(int i=0;i<str.length();i++)
            if(set.add(str.charAt(i))==false)
                return false;
        return true;
    }
}
public class Solution {
    /**
     * @param str: a string
     * @return: a boolean
     */
    public boolean isUnique(String str) {
        // write your code here
        boolean[] char_set = new boolean[256];
        for (int i = 0; i < str.length(); i++) {
        int val = str.charAt(i);
        if (char_set[val]) return false;
            char_set[val] = true;
        }
        return true;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容