[题目]
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 ‘-‘; }
时间: 2024-11-06 11:27:56