【发布时间】:2019-04-30 01:18:54
【问题描述】:
我开发了以下代码来确定字符串 s 是否是字符串 x 和 y 的交错。 s 内可以有 x 和 y 的重复,并且字符不必是连续的。例如,如果字符串 s = “11011001”,字符串 x = “110”,字符串 y = “01”,它将返回 true。
我希望有人可以帮助我确定算法的计算复杂度。我已经粘贴了下面的算法(java),但不知道如何找到它的计算复杂度。任何帮助将非常感激。谢谢!
public static boolean isInterleaving (String x, String y, String s) {
if (s.length()==0)
return true;
if (s.charAt(0)==x.charAt(0)) {
x = x.substring(1) + x.charAt(0);
if (isInterleaving(x, y, s.substring(1)))
return true;
}
if (s.charAt(0)==y.charAt(0)) {
y = y.substring(1) + y.charAt(0);
if (isInterleaving(x, y, s.substring(1)))
return true;
}
return false;
}
【问题讨论】: