我有一个函数等待两个字符串。我想返回一个单词列表,包含所有可能的变体,可以根据差异创建。
getAllVersions('cso','cső'); //--> [cso, cső]
getAllVersions('eges','igis'); //--> [eges, igis, egis, iges]
到目前为止,我已经创建了一个函数来统计差异,并保存它们的位置。你知道怎么继续吗?
public ArrayList<String> getAllVersions(String q, String qW) {
int differences = 0;
ArrayList<Integer> locations = new ArrayList<>();
ArrayList<String> toReturn = new ArrayList<>();
for (int i = 0; i < q.length(); i++) {
if (q.charAt(i) != q.charAt(i)) {
differences++;
locations.add(i);
}
}
toReturn.add(q);
toReturn.add(qW);
for (int i = 0; i < q.length(); i++) {
for (int j = 0; j < q.length(); j++) {
}
}
return toReturn;
}
}
2条答案
按热度按时间tf7tbtn21#
这是一个递归的解决方案
时间复杂度:o(n)
测试代码:
输出:
yk9xbfzb2#
完成后,返回应该以q开始,以qw结束,并且在这两者之间有所有的变化。