C練題筆記之:Leetcode-面試題 01.01. 判定字元是否唯一

2020-08-12 22:35:30

題目:

實現一個演算法,確定一個字串 s 的所有字元是否全都不同。

範例 1:

輸入: s = "leetcode"
輸出: false 
範例 2:

輸入: s = "abc"
輸出: true
限制:

0 <= len(s) <= 100
如果你不使用額外的數據結構,會很加分。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/is-unique-lcci
著作權歸領釦網路所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

結果:

解題思路:

這題類似於217. 存在重複元素。只是217題是int型,這裏是string。思路都是一樣的。

只要先排序了就簡單了

參考217的部落格:https://blog.csdn.net/lingjinyue/article/details/107967368

程式碼:

int compar(const void *a, const void *b)
{
    return *(char *)a - *(char *)b;
}
bool isUnique(char* astr){
    int len = strlen(astr);
    if(len <= 1) return true;
    qsort(astr, len, sizeof(char), compar);
    for(int i = 1; i < len; i++)
    {
        if(astr[i] == astr[i-1])
            return false;
    }
    return true;
}