LeetCode-389. Find the Difference (Java)

来源:互联网 发布:传奇霸业法师武魂数据 编辑:程序博客网 时间:2024/06/14 07:19

参考地址:http://www.cnblogs.com/styshoo/p/5922397.html

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:eExplanation:'e' is the letter that was added.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

本题还是比较两个字符串,找出多出来的一个字符,可用的方法还是比较多的,实现比较简单的有两种。

方法一,由于字符串t只比字符串s多了一个字符,那么直接用t中所有字符值的和减去字符串s中字符值的和即可

public char findTheDifference(String s, String t) {    int ret = 0;    for (int i = 0; i < s.length(); i++) {        ret -= (int)s.charAt(i);    }    for (int i = 0; i < t.length(); i++) {        ret += (int)t.charAt(i);    }    return (char)ret;}

方法二,另外一种思路,既然字符串t只比字符串s多了一个字符,也就是说大部分字符都是相同的。那么,我们可以使用异或的方式,来找出这个不同的值

public char findTheDifference(String s, String t) {    int ret = 0;    for (int i = 0; i < s.length(); i++) {        ret ^= s.charAt(i);    }    for (int i = 0; i < t.length(); i++) {        ret ^= t.charAt(i);    }    return (char)ret;}



原创粉丝点击