5 回答

小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
我想到一个办法,但应该不是最优,就当给题主一个参考吧。
String a = "北大再现一个人的毕业照你好哈哦额的了呢";
String b = "北大现百度一个阿里人毕照哈哦腾讯的了呢";
Set set = new HashSet();
for (int i = 0; i < b.length(); i++) {
set.add(String.valueOf(b.charAt(i)));
}
StringBuilder result = new StringBuilder();
for (int i = 0; i < a.length(); i++) {
String str = String.valueOf(a.charAt(i));
if(set.contains(str)){
result.append(str);
}
}
System.out.println(result);

慕桂英4014372
TA贡献1871条经验 获得超13个赞
思路很简单:利用hash。
准备一个hash表,先把a遍历一遍,分别以a中的每个字符作为key,这些key对应的value全置为true;然后遍历b,分别以b中的每个字符作为key,发现key对应的value为true,则说明这个字符既在a中又在b中。
添加回答
举报
0/150
提交
取消