389.找不同(亦或运算)

package test;

/**
 * 389.找不同
 *
 * 给定两个字符串 s 和 t,它们只包含小写字母。
 *
 * 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
 *
 * 请找出在 t 中被添加的字母。
 *
 *  
 *
 * 示例:
 *
 * 输入:
 * s = "abcd"
 * t = "abcde"
 *
 * 输出:
 * e
 *
 * 解释:
 * 'e' 是那个被添加的字母。
 *
 * 来源:力扣(LeetCode)
 * 链接:https://leetcode-cn.com/problems/find-the-difference
 * 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
 */
public class Number_389 {
    //该题与771题(宝石与石头)相似
    //在S中出现一次+1,t中出现一次-1,最后为-1的就是多余的字符
    public char findTheDifference(String s, String t) {
        int[] memoS=new int[26];
        for (int i=0;i

1.常规方法 利用数组记录出现次数:

389.找不同(亦或运算)_第1张图片

2.常规方法 利用数组记录出现次数(改进)

   将for循环变为foreach 与亦或运算差别不大

389.找不同(亦或运算)_第2张图片

3.亦或运算,加快执行速度:

389.找不同(亦或运算)_第3张图片

你可能感兴趣的:(LeetCode)