题目
实现一个算法,确定一个字符串 s
的所有字符是否全都不同。
示例 1:
1 | 输入: s = "leetcode" |
示例 2:
1 | 输入: s = "abc" |
:
0 <= len(s) <= 100
- 如果你不使用额外的数据结构,会很加分。
解法
解法一:
借助HashSet。将字符串分割为每个字符的字符HashSet,比较HashSet是否合原字符串长度一致即可。
这里需要注意的是,如果字符串为空,应该返回true
JAVA
1 | public boolean isUnique(String astr) { |
解法二:
将字符串转换为char数组,排序,遍历判断即可
JAVA
1 | public boolean isUnique(String astr) { |
解法三:
暴力破解
Java
1 | public boolean isUnique(String astr) { |
解法四:
使用字符串的replace方法。遍历字符串astr的每个字符,将其替换为“”,空字符串。然后比较新的字符串和astr的长度差,如果两者差超过1,表示存在一个字符出现次数是超过一次的
Java
1 | public boolean isUnique(String astr) { |
解法五:
使用bitSet
Java
1 | public boolean isUnique(String astr) { |
解法六:
大胆猜测,题目中的字符范围是小写字母a-z。就可以用一个int变量的其中26位保存莫哥字符是否出现过。
Java
1 | public boolean isUnique(String astr) { |