目标是找到两个给定字符串中的共同字母 s1
和s2
.
常用符号字符串的长度必须至少为两个字母。
输入示例
String s1 = "BAABBBAABBA";
String s2 = "BBBABBBAA";
缩小解决方案范围的步骤
- 步骤:
s1 = BAA**BBBA**ABBA
s2 = **BBBA**BBBABA
len = 4
- 步骤:
s1 = BAA____A**BBA**
s2 = ____B**BBA**BA
len = 3
我是一个初学者,在这个案例上挣扎了 4 个小时。 有人可以帮我解决这个问题吗? 很高兴收到 Java 解决方案。
提前致谢。
最佳答案
也许下面的代码可以帮助你。这个想法是从一个字符串创建所有可能的子字符串,以检查该子字符串是否包含在另一个字符串中。
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
String s1 = "BAABBBAABBA";
String s2 = "BBBABBBAA";
Set<String> foundSet = new HashSet<>();
for (int start = 0; start < s1.length() - 1; ++start) {
for (int end = start + 2; end <= s1.length(); ++end) {
String subString = s1.substring(start, end);
if (s2.contains(subString)) {
foundSet.add(subString);
}
}
}
foundSet.forEach(System.out::println);
}
}
关于java - 查找两个字符串中的共同字母(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59543967/