实现一个算法,确定一个字符串 s
的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/is-unique-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解答思路
方案一:
首先将字符串转化为字符数组,通过两重循环进行遍历,判断这个字符数组中是否存在两个相同的字符。如果存在直接return。
class Solution {
public boolean isUnique(String astr) {
char[] array = astr.toCharArray();
for(int i=0;i<array.length;i++){
for(int j=i+1;j<array.length;j++){
if(array[i]==array[j]){
return false;
}
}
}
return true;
}
}
方案二:
首先定义一个大小为26的整型数组,用于记录26字母在字符串中出现的次数。接着遍历该字符串,得到字符串中各个字符出现的次数。然后判断整型数组中数值是否比1大,有的话就代表该字符出现次数大于1,即存在重复字符。
class Solution {
public boolean isUnique(String astr) {
int[] nums = new int[26];
int len=astr.length();
for (int i = 0; i < len; i++) {
nums[astr.charAt(i)-97]++;
}
for (int num : nums) {
if (num > 1){
return false;
}
}
return true;
}
}