5 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
我想到一個(gè)辦法,但應(yīng)該不是最優(yōu),就當(dāng)給題主一個(gè)參考吧。
String a = "北大再現(xiàn)一個(gè)人的畢業(yè)照你好哈哦額的了呢";
String b = "北大現(xiàn)百度一個(gè)阿里人畢照哈哦騰訊的了呢";
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);

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
思路很簡(jiǎn)單:利用hash。
準(zhǔn)備一個(gè)hash表,先把a(bǔ)遍歷一遍,分別以a中的每個(gè)字符作為key,這些key對(duì)應(yīng)的value全置為true;然后遍歷b,分別以b中的每個(gè)字符作為key,發(fā)現(xiàn)key對(duì)應(yīng)的value為true,則說(shuō)明這個(gè)字符既在a中又在b中。
添加回答
舉報(bào)