Data7.16找不同
作者:互联网
问题描述
- 给定两个字符串 s 和 t,它们只包含小写字母。
- 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
- 请找出在 t 中被添加的字母
样例
- 输入:s = "abcd", t = "abcde" 输出:"e" 解释:'e' 是那个被添加的字母。
- 输入:s = "", t = "y" 输出:"y"
- 输入:s = "a", t = "aa" 输出:"a"
- 输入:s = "ae", t = "aea" 输出:"a
提示
- 0<= s.length <= 1000
- t.length == s.length + 1
- s 和 t 只包含小写字
思路
- 题目只需要找到新放进去的一个字母,不需要指定位置,所以可以使用ASCLL码来解题;
- 将s和t的ASCLL码加起来后两个数相减得到新增的字母的ASCLL码,随后将ASCLL码转换为字母输出;
代码
package data;
import java.util.Scanner;
public class Data716 {
public static void main(String[] args) {
String s, t;
Scanner cin = new Scanner(System.in);
System.out.println("s= ");
s = cin.nextLine();
System.out.println("t= ");
t = cin.nextLine();
char e = findDifference(s, t);
System.out.println(e);
cin.close();
}
public static char findDifference(String s, String t){
int a = 0, b=0;
for (int i = 0;i < s.length(); i++){
a += s.charAt(i);//++i为前缀递增
}
for (int i = 0;i < t.length(); i++){
b += t.charAt(i);
}
return (char)(b-a);
}
}
标签:String,Data7.16,不同,字母,System,cin,length,ASCLL 来源: https://www.cnblogs.com/tmtboke/p/15039195.html