任务如下:“编写一个JavaScript程序以找到尽可能短的字符串,该字符串可以通过在字符串末尾添加字符来创建一个字符串以使其成为回文。”
这是我正在查看的代码:
function build_Palindrome(new_str) {
var flag;
for (var i = new_str.length;; i++) {
flag = true;
for (var j = 0; j < i - j - 1; j++) {
if (i - j - 1 < new_str.length && new_str[j] != new_str[i - j - 1]) {
flag = false;
break;
}
}
if (flag) {
for (var j = new_str.length; j < i; j++) {
new_str += new_str[i - j - 1];
}
return new_str;
}
}
}
测试:
console.log(build_Palindrome("abcddc"))
输出:
abcddcba
我的问题:首先,它以j=0
开始。如果在for
循环flag=false
中,它如何进行?是i=7
(i++
吗?)是j=0
还是j=1
?
答案 0 :(得分:0)
是的,您可以使用 console.log 或任何调试器进行调试。
根据您的情况,如果 flag 为假,它将打破 j 的循环并转到其外部循环( i 这里)
我在这里进行了演示: https://repl.it/repls/LoyalProfuseRouter
您可以看到该演示(它是我的解决方案附带的),而不是中断,您可以使用简单的循环来返回您的字符串,它更具可读性。