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
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;
    }
}

你可能感兴趣的:(LintCode 判断字符串是否没有重复字符)