刷题专栏(二十七): 找不同

92 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情

前言

刷题专栏到目前已经是第二十七篇了,欢迎大家来关注我的刷题专栏,一起来刷题。

今天的这道题,《找不同》,是关于字符串的一道题。

如果你要更熟练的使用字符串的诸多特性。

那就一起来看一下这道题的解法吧。

image.png

算法题:找不同

根据题目的描述来看,是要在两个字符串中找出不一样的字母。

且两个字符串只会相差一个字符,都是只包含小写字母。

通过这两个重要特征,我们解题的思路就很简单了。

思路有很多种,比如,我们可以通过Set集合来存储,然后一一排除,找到最后就可以找到不同之处。

再比如,char类型的字母是固定的值,我们可以将所有的字母转为整数数值保存,最后进行相减后转换成char值即可达到预期结果。

接下来我们就一起来看一下相关的代码编写吧。

代码展示

本次执行的代码如下,大家可以自行参考一下。

采用的就是关于char字母的整型数字总和相减的方式来处理的。

public class Solution {

    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.findTheDifference("a", "ac"));
    }

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

}

代码执行结果

本次代码执行的效率一般,内存消耗严重,执行用时却没有提升上来。看来这个方法有待提高。

image.png

总结

本题主要就是考察关于char类型字母的使用,和对字符串获取的熟练掌握。大家学会了吗,有问题评论区见。