面試題1之確定乙個字串的所有字元是否全都不同

2021-07-30 12:24:59 字數 1147 閱讀 6156

請實現乙個演算法,確定乙個字串的所有字元是否全都不同。這裡我們要求不允許使用額外的儲存結構。

給定乙個string inistring,請返回乙個bool值,true代表所有字元全都不同,false代表存在相同的字元。保證字串中的字元為ascii字元。字串的長度小於等於3000。

測試樣例:

"aeiou"

返回:true

"barackobama"

返回:false

方式三:基於快速排序的partition,可以邊排序邊找重複,也即是每次partition之後,判斷中間key元素與兩邊元素是否相同,相同則返回false,不同再進行下一輪partition.時間複雜度也是o(nlongn)

#includeusing namespace std;

#include#include//方式一

/*bool checkdifferent(string inistring)

; for (int i = 0; i < inistring.length(); ++i)

for (int i = 0; i < inistring.length(); ++i)

return true;

}*///方式二

/*bool checkdifferent(string inistring)

*///方式三

bool qsort(string str,int low,int high)

swap(str[low],str[high]);

while (low < high && str[high] >= key)

swap(str[low],str[high]);

} if (low != first && str[low] == str[low-1])

return false;

if(low != high && str[low == str[low+1]])

return false;

return qsort(str,first,low-1) && qsort(str,low+1,second);

}bool checkdifferent(string inistring)

int main()

{ cout << checkdifferent("aeiou") <

乙個字串的面試題

題目 有一字串由m個單詞組成單詞之間有空格隔開 只有空格,沒有其他標點符號 有n個關鍵字,現在要在字串中找出包含n個關鍵字 每個關鍵字至少出現一次,沒有說要不要按什麼順序 的最短子串。函式原型 string extractsummary string description,string keywo...

確定乙個字串所有字元是否都不同

題目 實現乙個演算法,確定乙個字串的所有字元是否都不相同。解答 總共有256個字元,可以申請乙個布林陣列,初始化都為false.遍歷所有字元,把字元對應到布林陣列,如果陣列該位為true,則說明之前該字元出現過,否則修改值為true。bool same char str for int i 0 i ...

確定乙個字串的所有字元是否全都不同

題目 給定乙個string inistring 請返回乙個bool值,true 代表所有字元全都不同,false 代表存在相同的字元。保證字串中的字元為ascii字元。字串的長度小於等於3000。思路 用乙個int做位運算,乙個int4個位元組32位,一共26個字母綽綽有餘。include incl...