实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
题目中提示尽量不要用额外的数据结构
public class IsUniqueLCCI {
public static boolean isUnique(String astr) {
boolean flag = true;
Map<Character, Integer> map = new HashMap();
for (int i = 0; i < astr.length(); i++) {
if (map.containsKey(astr.charAt(i))) {
return false;
}
map.put(astr.charAt(i), i);
}
return flag;
}
public static void main(String[] args) {
System.out.println(isUnique("wwfrtert"));
}
}
知识点:作用: indexOf:查找某个字符串在字符串首次出现的位置 lastIndexOf:从右想做查找某个字符串在字符串中最后一次出现的位置 不同点: indexOf:从左往右查找 lastIndexOf:从右往左查找 注意:lastIndexOf()方法虽然是从后往前搜索,但返回的位置是从前开始数的。
举例:
String a = "qwerty";
int i = a.indexOf("q");
int j = a.lastIndexOf("q");
System.out.println(i);
System.out.println(j);
output:
0
0
实现代码:
class Solution {
public boolean isUnique(String astr) {
if (astr.length() == 1 || astr.length() == 0) {
return true;
}
boolean flag = true;
for (int i = 0; i < astr.length(); i++) {
if (astr.indexOf(astr.charAt(i)) != astr.lastIndexOf(astr.charAt(i))) {
return false;
}
}
return flag;
}
}
Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/leetcode进阶之路-判定字符是否唯一