我有以下内容:function checkPalindrom(palindrom){ for( var i = palindrom.length; i > 0; i-- ) { if( palindrom[i] = palindrom.charAt(palindrom.length)-1 ) { document.write('the word is palindrome.'); }else{ document.write('the word is not palindrome!'); } }}checkPalindrom('wordthatwillbechecked');我的代码出了什么问题?我想检查这个词是否是回文。
3 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
也许我会建议替代解决方案:
function checkPalindrom (str) {
return str == str.split('').reverse().join('');
}
UPD。但请记住,这是非常“欺骗”的方法,是语言功能的智能使用的演示,但不是最实用的算法(时间O(n),空间O(n))。对于现实生活应用或编码面试,你一定要使用循环解决方案。在一个由Jason Sebring在这个线程发布既简单又有效的(时间为O(n),空间O(1))。
慕慕森
TA贡献1856条经验 获得超17个赞
第一个问题
= is assign ==是比较
第二个问题,你的逻辑是错误的
palindrom.charAt(palindrom.length)-1
你从charAt中减去一个而不是长度。
第三个问题,它仍然是错误的,因为你没有减少i的长度。
添加回答
举报
0/150
提交
取消