LeetCode 389. Find the Difference

来源:互联网 发布:php购物网站 编辑:程序博客网 时间:2024/06/05 19:46

Description

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.

Analysis

Let hs[i] and ht[i] record how many times the ith letters appears in string s,t, respectively. And map hs and ht to find the only different value. The char(key+97) is the answer.
Also, someone used XOR to find the different letter because the even-time appearance of the same part of s, t. The following example is easy to understand.

(AB)(ABC)=0C=C

Code

class Solution {public:    char findTheDifference(string s, string t) {        short ht[26] = { 0 }, hs[26] = { 0 };        for (char c : s)   hs[c - 97]++;        for (char c : t)   ht[c - 97]++;        for (int i = 0; i < 26; i++)            if (hs[i] != ht[i])                return char(i+97);    }};

Appendix

  • Link:https://leetcode.com/problems/find-the-difference/
  • Run Time: 3ms
0 0
原创粉丝点击