题目描述:
Implement an algorithm to determine if a string has all unique characters.
Example
Given "abc"
, return true
.
Given "aab"
, return false
.
Challenge
题目思路:
What if you can not use additional data structures?
题目要求不能用extra data structure,也就是说不能有一个set或者map去存出现过的char。那剩下的思路就是将string排序,那么重复的char只可能出现在相邻的两个char之间。
Mycode(AC = 12ms):
class Solution {
public:
/**
* @param str: a string
* @return: a boolean
*/
bool isUnique(string &str) {
// write your code here
// sort the string so that all the char
// are ordered
sort(str.begin(), str.end());
// the duplication will only appear for
// neighbored chars for sorted string
for (int i = 1; i < str.length(); i++) {
if (str[i] == str[i - 1]) {
return false;
}
}
return true;
}
};