LeetCode關於找不同的解法

2021-08-15 20:03:10 字數 1149 閱讀 7138

第一次去leetcode上寫**,果然自己的演算法能力需要多多練習了。

given two strings s

and t

which consist of only lowercase letters.

string t

is generated by random shuffling string s

and then add one more letter at a random position.

find the letter that was added in t

.example:

input:

s = "abcd"

t = "abcde"

output:

eexplanation:

'e' is the letter that was added.

給定兩個字串s和

t,它們只包含小寫字母。

字串t

由隨機洗牌字串s生成

,然後在隨機位置新增乙個字母。

找到在t

中新增的字母

。有個比較簡單的思路就是將字串都轉化為char型別的陣列,然後一一比對,發現不同的就是那個後來加入的字串,在這之前一定要先對字串陣列進行整理,不然的話是不能進行比較的

**如下

char  s_arr=s.tochararray();//將字串轉化為char型別陣列

char t_arr=t.tochararray();

arrays.sort(s_arr);//對字串進行整理

arrays.sort(t_arr);

for(int i=0;i但是還有乙個更好的解決方法就是使用xor(即異或操作),將兩個字串中所有的字元進行「異或」操作,最後剩下的那個字元就是我們要的結果,這是因為在「異或」過程中,兩個相同字元會變成0,所以「異或」到最後就等價於0和目標字元進行「異或」,結果還是目標字元,直接輸出即可,**如下:

public char findthedifference_b(string s, string t)

for (int i = 0; i < t.length(); ++i)

return c;

}

原文

leetcode題目 389 找不同

給定兩個字串 s 和 t,它們只包含小寫字母。字串 t 由字串 s 隨機重排,然後在隨機位置新增乙個字母。請找出在 t 中被新增的字母。輸入 s abcd t abcde 輸出 e 解釋 e 是那個被新增的字母。先用hashmap統計t t為較長的那個字串 的字母頻率,然後再遍歷s的字母,遇到乙個字...

LeetCode題解 389 找不同

瞧一瞧 求star 給定兩個字串 s 和 t,它們只包含小寫字母。字串 t 由字串 s 隨機重排,然後在隨機位置新增乙個字母。請找出在 t 中被新增的字母。示例 輸入 s abcd t abcde 輸出 e 解釋 e 是那個被新增的字母。思路 var findthedifference functi...

leetCode 389 找不同 簡單

給定兩個字串 s 和 t,它們只包含小寫字母。字串 t 由字串 s 隨機重排,然後在隨機位置新增乙個字母。請找出在 t 中被新增的字母。遍歷s中的字元進行計數,再遍歷t中的字元將對應的字元數量 如果t中乙個字元的數量為0那麼該字元為新增的字元。class solution for int i 0 i...