zoukankan      html  css  js  c++  java
  • 力扣(LeetCode)389. 找不同

    给定两个字符串 s 和 t,它们只包含小写字母。

    字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

    请找出在 t 中被添加的字母。

    示例:

    输入:
    s = "abcd"
    t = "abcde"

    输出:
    e

    解释:
    'e' 是那个被添加的字母。

    思路 1.先将字符串排序,从小到大,然后逐一比较

    这种情况和1001个数,每个数字1~1000,有一个重复数字一样。可以使用异或法 或者作差法

    java 字符数组排序遍历查找 版

    class Solution {
        public char findTheDifference(String s, String t) {
            char[] cs = s.toCharArray();
            char[] ct = t.toCharArray();
            Arrays.sort(cs);
            Arrays.sort(ct);
            for(int i=0;i<cs.length;i++) {
                if(cs[i]!=ct[i]){
                    return ct[i];  
                }
            }
            return ct[ct.length-1];
        }
    }
    

    java 字符数组求和作差 版

    class Solution {
        public char findTheDifference(String s, String t) {
           char[] cs = s.toCharArray();
           char[] ct = t.toCharArray();
           int total = 0;
           for(int i=0;i<ct.length;i++) {
               total +=ct[i];
           }
           for(int i=0;i<cs.length;i++) {
               total -=cs[i];
           }
           return (char)total;
            
        }
    }
    

    java 字符数组异或 版

    class Solution {
        public char findTheDifference(String s, String t) {
           char[] cs = s.toCharArray();
           char[] ct = t.toCharArray();
           int total = 0;
           for(int i=0;i<ct.length;i++) {
               total ^=ct[i];
           }
           for(int i=0;i<cs.length;i++) {
               total ^=cs[i];
           }
           return (char)total;
            
        }
    }
    

    运行结果

  • 相关阅读:
    oracle查看字符集和修改字符集
    oracle11g 使用数据泵导出导入数据
    Oracle 11G在用EXP 导出时,空表不能导出解决
    帮助小伙伴写的组装xml字符串类
    GCD-01
    UITableViewCell-03
    UITableViewCell-02
    iOS代理-03
    UITableViewCell-01
    iOS代理-02
  • 原文地址:https://www.cnblogs.com/lick468/p/10671415.html
Copyright © 2011-2022 走看看