確定兩個字串是否接近

2021-10-25 09:38:05 字數 1414 閱讀 6318

題目:

如果可以使用以下操作從乙個字串得到另乙個字串,則認為兩個字串 接近 :

操作 1:交換任意兩個 現有 字元。

例如,abcde -> aecdb

操作 2:將乙個 現有 字元的每次出現轉換為另乙個 現有 字元,並對另乙個字元執行相同的操作。

例如,aacabb -> bbcbaa(所有 a 轉化為 b ,而所有的 b 轉換為 a )

你可以根據需要對任意乙個字串多次使用這兩種操作。

給你兩個字串,word1 和 word2 。如果 word1 和 word2 接近 ,就返回 true ;否則,返回 false 。

示例 1:

輸入:word1 = 「abc」, word2 = 「bca」

輸出:true

解釋:2 次操作從 word1 獲得 word2 。

執行操作 1:「abc」 -> 「acb」

執行操作 1:「acb」 -> 「bca」

示例 2:

輸入:word1 = 「a」, word2 = 「aa」

輸出:false

解釋:不管執行多少次操作,都無法從 word1 得到 word2 ,反之亦然。

示例 3:

輸入:word1 = 「cabbba」, word2 = 「abbccc」

輸出:true

解釋:3 次操作從 word1 獲得 word2 。

執行操作 1:「cabbba」 -> 「caabbb」

執行操作 2:「caabbb」 -> 「baaccc」

執行操作 2:「baaccc」 -> 「abbccc」

示例 4:

輸入:word1 = 「cabbba」, word2 = 「aabbss」

輸出:false

解釋:不管執行多少次操作,都無法從 word1 得到 word2 ,反之亦然。

解題思路:近似字串需要滿足以下條件:

長度相等

兩個字串**現的字元相同

字元出現的個數相同(比如:"cabbba"有3b, 2a, 1c, "abbccc"有3c, 2b, 1a這是滿足的,而「cabbba」和 「aabbss」是不滿足的)

class

solution

//判斷是否有可以交換的元素

for(

int i =

0; i <

26; i++

)

arrays.

sort

(arr2)

; arrays.

sort

(arr1)

;for

(int i =

0; i <

26; i++

)return

true;}

}

確定兩個字串是否接近

如果可以使用以下操作從乙個字串得到另乙個字串,則認為兩個字串接近 操作 2 將乙個現有字元的每次出現轉換為另乙個現有字元,並對另乙個字元執行相同的操作。你可以根據需要對任意乙個字串多次使用這兩種操作。給你兩個字串,word1和word2。如果word1和word2接近,就返回true 否則,返回fa...

比較兩個字串是否相等

我剛剛才學了組合語言,就寫了乙個很簡單的程式.下面是程式 dseg segment data1 db 9,0,9 dup data2 db 9,0,9 dup cnt db 8 str1 db 13,10,two string is same.str2 db 13,10,two string is ...

判斷兩個字串是否相同

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...