題目描述
請實現乙個演算法,確定乙個字串的所有字元是否全都不同。這裡我們要求不允許使用額外的儲存結構。
給定乙個string inistring,請返回乙個bool值,true代表所有字元全都不同,false代表存在相同的字元。保證字串中的字元為ascii字元。字串的長度小於等於3000。
測試樣例:
「aeiou」返回:true
「barackobama」返回:false
思路一:
暴力求解法,遍歷那麼只能用兩層for迴圈遍歷,時間複雜度為o(n*n)。
public
boolean
checkdifferent(string inistring)
}return
true;
}
思路二:
排序既然題目要求不能使用額外空間,而引數列表沒有const或引用,那麼就可以對字串排序,然後再判斷,需要o(nlogn)排序。
思路三:
構建乙個布林的陣列,索引值i對應的標記指示該字串是否含有字母表中的第i個字元。若第二次出現,則立即返回false。若字元編碼是ascii字符集,則總共只有256個字元,若總長度超過了必定有重複。若為unicode編碼,則總共有65536。
public
boolean
checkdifferent(string inistring)
charset[val] = true;
}return
true;
}
確定字元互異
題目描述 請實現乙個演算法,確定乙個字串的所有字元是否全都不同。這裡我們要求不允許使用額外的儲存結構。給定乙個string inistring,請返回乙個bool值,true代表所有字元全都不同,false代表存在相同的字元。保證字串中的字元為ascii字元。字串的長度小於等於3000。測試樣例 a...
確定字元互異
請實現乙個演算法,確定乙個字串的所有字元是否全都不同。這裡我們要求不允許使用額外的儲存結構。給定乙個stringinistring,請返回乙個bool值,true代表所有字元全都不同,false代表存在相同的字元。保證字串中的字元為ascii字元。字串的長度小於等於3000。測試樣例 aeiou 返...
01 確定字元互異
請實現乙個演算法,確定乙個字串的所有字元是否全都不同。這裡我們要求不允許使用額外的儲存結構。給定乙個stringinistring,請返回乙個bool值,true代表所有字元全都不同,false代表存在相同的字元。保證字串中的字元為ascii字元。字串的長度小於等於3000。測試樣例 1.aeiou...