题目描述:
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.
思路一:异或
class Solution {
public char findTheDifference(String s, String t) {
if (s.length() == 0 && t.length() == 1)
return t.charAt(0);
int tLen = t.length();
char res = t.charAt(tLen - 1);
for (int i = 0; i < tLen - 1; i++)
{
res ^= s.charAt(i);
res ^= t.charAt(i);
}
return res;
}
}
思路二:多出一个char类型的值
class Solution {
public char findTheDifference(String s, String t) {
if (s.length() == 0 && t.length() == 1)
return t.charAt(0);
int charCodeS = 0;
int charCodeT = 0;
for (int i = 0; i < s.length(); i++)
{
charCodeS += (int)s.charAt(i);
charCodeT += (int)t.charAt(i);
}
charCodeT += (int)t.charAt(t.length() - 1);
return (char)(charCodeT - charCodeS);
}
}