1.トピックの紹介
文字列のすべての文字がすべて異なるかどうかを判断するアルゴリズムを実装します。
例1:
入力:s = "leetcode"
出力:false
例2:
入力:s = "abc"
出力:true
制限:
0 <= len(s)<= 100
追加のデータ構造を使用しない場合、それはボーナスになります。
出典:LeetCode
リンク:https ://leetcode-cn.com/problems/is-unique-lcci
著作権はLeetCodeが所有しています。商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。
2つの問題解決のアイデア
この質問は、セットのデータ構造を使用すると簡単に実装できるため、ここでは紹介しません。制限により、追加のデータ構造は適用されません。入力文字列はすべて小文字で構成されているため、ここでは、各文字が表示されたかどうかを記録するために、長さ26の文字配列が作成されます。特定の実装については、コードを参照してください。
3つの問題解決コード
class Solution {
public:
bool isUnique(string astr) {
char s[26] = {0};
for(int i = 0; i < astr.size(); ++i)
{
if(s[astr[i] - 'a'] == 1)
return false;
s[astr[i] - 'a'] = 1;
}
return true;
}
};