leetcode 链接:判定字符是否唯一
题目
实现一个算法,确定一个字符串 s
的所有字符是否全都不同。假使不
允许使用额外的数据结构,又该如何处理?
示例:
输入: s = "leetcode"
输出: false
输入: s = "abc"
输出: true
解答 & 代码
如果没有题目中不允许使用额外的数据结构的限制,则可以使用哈希表(散列表)
本题解法:
- 首先,如果字符串为空,则直接返回 true
- 对字符串进行排序(可以收用
<algorithm>
头文件自带的sort()
,对字符串进行升序排序;也可以自己实现排序算法) - 遍历排序后字符串的各个字符,如果前后两个相邻字符相同,说明有重复,返回
false
- 遍历结束,无相邻的相同字符,返回
true
```cppinclude
class Solution { public: bool isUnique(string astr) { if(astr.size() == 0) return true;
sort(astr.begin(), astr.end());
char ch = astr[0];
for(int i = 1; i < astr.size(); i++)
{
if(ch == astr[i])
return false;
ch = astr[i];
}
return true;
}
}; ```