码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] NO. 389 Find the Difference

时间:2016-09-03 16:33:36      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

[题目] 

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.

 

[题目解析] 根据题意,字符串中只含有小写字母,则可以用一个26位的数组表示map结构,记录对应字符串的字符和出现次数。如下。

   public char findTheDifference(String s, String t) {
       int[] hash = new int[26];
       char[] sarray = s.toCharArray();
       char[] tarray = t.toCharArray();
       for(int i = 0; i < s.length(); i++){
    	   int num = sarray[i] - ‘a‘;
    	   hash[num]++;
       }
       for(int i = 0; i < t.length(); i++){
    	   int tnum = tarray[i] - ‘a‘;
    	   hash[tnum]--;
    	   if(hash[tnum] < 0){
    		   return (char) ((char)tnum+‘a‘);
    	   }
       }
       return ‘-‘;
   }

  

[LeetCode] NO. 389 Find the Difference

标签:

原文地址:http://www.cnblogs.com/zzchit/p/5837256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!