確定字元互異

2021-07-16 02:25:07 字數 865 閱讀 6489

題目描述

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

給定乙個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...