python實現判斷兩個字串是否為換位字串

2021-10-08 15:48:53 字數 1098 閱讀 5918

題目描述:

換位字串是指組成字串的字元相同,但位置不同。例如:由於字串「 aaaabbc」與字串「abcbaaa」 就是由相同的字元所組成的,因此它們是換位字元。

分析與解答:

在演算法設 計中, 經常會採用空 間換時間的方法以降低時間 複雜度, 即通過增加額外的存 儲空間來達到優化演算法效能的目的。就本題而言,假設字串中只使用 ascii字元,由於 ascii 字元共有 256 個 (對應的編碼為 0~255), 在實現的時候可 以通過申請大小為 256 的陣列來記 錄各個字元 出現的個數,並將其初始化為 0,然後遍歷第乙個字串 ,將字元對應 的 ascii 碼值作為陣列下標,把對應陣列的元素加 1,然後遍歷第二個字串,把陣列中對應的元素值 減 1。如果最後陣列中各個元素的值都為 0, 那麼說明這兩個字串是由相同的字元所組成的 ; 否則,這兩個字串是由不同的字元所組成的。實現**如下 :

def compare(s1,s2):

result=true

bcount=[none]*256

i=0while i<256:

bcount[i]=0

i+=1

i=0while ibcount[ord(list(s1)[i])-ord('0')]+=1

i+=1

i=0while ibcount[ord(list(s2)[i])-ord('0')]-=1

i+=1

i=0while i<256:

if bcount[i]!=0:

result=false

break

i+=1

return result

if __name__=='__main__':

str1='aaaabbc'

str2='abcbaaa'

print(str1+'和'+str2)

if compare(str1,str2):

print('是換位符')

else:

print('不是換位符')

輸出:

aaaabbc和abcbaaa

是換位符

如何判斷兩個字串相等

如果 name的值是管理員的話就走大括號里德 奇怪的是 現在這個條件怎麼也不成立了。無論name的值是不是管理員,程式死活就不走大括號離得 如果name是個控制項用tostring方法獲取的是該控制項的型別不是值 所以要先知道name是個什麼東東我估計不是這個問題.你除錯下獲取下name看下正常不 ...

判斷兩個字串是否相同

data segment mess1 db computer software mess2 db computer software data ends code segment assume ds data,cs code start mov ax,data mov ds,ax mov es,ax...

連線兩個字串

include include void main char lianjie char a 30 char b 30 原型 extern char strcat char dest,char src 用法 include 功能 把src所指字串新增到dest結尾處 覆蓋dest結尾處的 0 並新增 ...