題目
實(shí)現(xiàn)一個(gè)算法確定字符串中的字符是否均唯一出現(xiàn)
樣例
給出"abc"孕荠,返回true
給出"aab"宦搬,返回false
挑戰(zhàn)
如果不使用額外的存儲(chǔ)空間沈自,你的算法該如何改變?
分析
用兩種方法笤喳,一種借助set沒有重復(fù)元素的特點(diǎn)为居,如果add不進(jìn)去,就說明重復(fù)了杀狡,就直接returnfalse
第二種方法蒙畴,設(shè)立一個(gè)數(shù)組,用來判斷字符出現(xiàn)的次數(shù)呜象,第二次出現(xiàn)就判斷為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;
}
}