首页 > 代码库 > 389. Find the Difference

389. Find the Difference

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:
e

Explanation:
‘e‘ is the letter that was added.

s是一串随机的字符串,将s的每个字母打乱后,再加入一个字母,形成字符串t,问加入的是哪个字母

java(6ms):
 1 public class Solution {
 2     public char findTheDifference(String s, String t) {
 3         char[] ss = s.toCharArray() ;
 4         char[] tt = t.toCharArray() ;
 5         int slen = s.length() ;
 6         int sum = 0 ;
 7         int i ;
 8         for (i = 0 ; i < slen ; i++){
 9             sum -= (int)ss[i] ;
10             sum += (int)tt[i] ;
11         }
12         sum += (int)tt[i] ;
13         
14         return (char)sum;
15     }
16 }

 

java(5ms):

 1 public class Solution {
 2     public char findTheDifference(String s, String t) {
 3         char[] ss = s.toCharArray() ;
 4         char[] tt = t.toCharArray() ;
 5         int slen = s.length() ;
 6         int sum = 0 ;
 7         int i ;
 8         for (i = 0 ; i < slen ; i++){
 9             sum ^= ss[i] ^ tt[i] ;
10         }
11         sum ^= tt[i] ;
12         
13         return (char)sum;
14     }
15 }

 

389. Find the Difference