157. 判断字符串是否没有重复字符
实现一个算法确定字符串中的字符是否均唯一出现
样例
样例 1:
输入: "abc_____"
输出: false
样例 2:
输入: "abc"
输出: true
挑战
如果不使用额外的存储空间,你的算法该如何改变?
思路:
判断出现的第一次和第二次地方是否一致,不一致就是重复出现的了
public class Solution {
/**
* @param str: str: the given string
* @return: char: the first unique character in a given string
*/
public boolean firstUniqChar(String str) {
// Write your code here
if(str.length()<=0){
return true;
}
char[] s=str.toCharArray();//可以不定义这个额外的存储空间,下面直接用str.charAt
for(int i = 0;i<str.length();i++){
if(str.indexOf(s[i])!=str.lastIndexOf(s[i])){//获取字符出现的下标
return false;
}
}
return true;
}
}
public class Solution {
/*
* @param str: A string
* @return: a boolean
*/
public boolean isUnique(String str) {
// write your code here
// write your code here
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
if (map.containsKey(String.valueOf(str.charAt(i))) ){
return false;
}
map.put(String.valueOf(str.charAt(i)), i);
}
return true;
}
}