第一次去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和s = "abcd"
t = "abcde"
output:
eexplanation:
'e' is the letter that was added.
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...