持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情
前言
刷题专栏到目前已经是第二十七篇了,欢迎大家来关注我的刷题专栏,一起来刷题。
今天的这道题,《找不同》,是关于字符串的一道题。
如果你要更熟练的使用字符串的诸多特性。
那就一起来看一下这道题的解法吧。
算法题:找不同
根据题目的描述来看,是要在两个字符串中找出不一样的字母。
且两个字符串只会相差一个字符,都是只包含小写字母。
通过这两个重要特征,我们解题的思路就很简单了。
思路有很多种,比如,我们可以通过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);
}
}
代码执行结果
本次代码执行的效率一般,内存消耗严重,执行用时却没有提升上来。看来这个方法有待提高。
总结
本题主要就是考察关于char类型字母的使用,和对字符串获取的熟练掌握。大家学会了吗,有问题评论区见。