我有以下内容:
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');
我的代码有什么问题?我想检查一下这个词是否是回文。
也许我会建议替代解决方案:
function checkPalindrom (str) { return str == str.split('').reverse().join(''); }
UPD。但是请记住,这几乎是“作弊”方法,是对语言功能的智能用法的演示,但不是最实用的算法(时间O(n),空间O(n))。对于现实生活中的应用程序或编码面试,您绝对应该使用循环解决方案。JasonSebring在此线程中发布的一个既简单又有效(时间O(n),空间O(1))。