實現乙個演算法,確定乙個字串的所有字元是否全部相同?
最想想到的方法是通過比較該字串的每乙個字元,演算法的時間複雜度為0(n2)次。
另一種辦法是可以利用set資料結構來實現,因為在set中不允許存在重複的字元。有乙個有意思的地方是在進行判斷前可以先判斷字串的長度,如果字串的長度大於256,那麼我們可以肯定該字串中肯定有重複的字元。
python**實現如下:
a = "11fdwqdgf5hg56gfwdqwsdqwd";
#採用set的方法
def judge():
t = set(a);
n = len(a);
if(t == n):
return ('true');
else:
print(t);
return ('false');
#比較字串中的每乙個字元
def judge2():
n = len(a);
for i in range(n):
s = a[i];
for j in range(i,n,1):
if(s == a[j]):
return ('false');
return "true"
if __name__ == "__main__":
print(judge());
print(judge2());
c++**:
bool judge(const string str)else
char_set[val] = true;
}} return true;
}
關於遞迴的幾道題目
其實遞迴我一直不太會用,正好這次的題目講了再加上自己網上搜的 把這次的兩道遞迴題總結了一下。小明剛剛看完電影 第39級台階 離開電影院的時候,他數了數禮堂前的台階數,恰好是39級 站在台階前,他突然又想著乙個問題 如果我每一步只能邁上1個或2個台階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說...
關於linux的幾道面試題
1 linux中主要有哪幾種核心鎖?linux的核心鎖主要是自旋鎖和訊號量。自旋鎖最多只能被乙個可執行執行緒持有,如果乙個執行執行緒試圖請求乙個已被爭用 已經被持有 的自旋鎖,那麼這個執行緒就會一直進行忙迴圈 旋轉 等待鎖重新可用。要是鎖未被爭用,請求它的執行執行緒便能立刻得到它並且繼續進行。自旋鎖...
幾道C語言題目
下面 的輸出結果是?int main int ptr 3 a printf d,d n ptr 1 ptr 2 ptr printf d,d n ptr 1 ptr 2 system pause return 0 2,3 5,6 ptr的型別是int 3 那麼 ptr的型別便是int 3 也就是in...