当前位置: 首页 > 面试题库 >

用Java回文检查

阳兴朝
2023-03-14
问题内容

我有以下内容:

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))。



 类似资料:
  • 问题内容: 回文是一个词,短语,数字或其他单位序列,可以读取相同的方式在任何方向。 为了检查一个单词是否是回文,我得到了这个单词的char数组并比较了这些字符。我试过了,看起来很管用。但是我想知道这是对的还是有什么需要改进的地方。 这是我的代码: 问题答案: 为什么不只是: 例: 输入为“ andna”。 i1将为0,i2将为4。 第一次循环迭代,我们将比较和。它们相等,因此我们将i1递增(现在为

  • 使用 deque 数据结构可以容易地解决经典回文问题。回文是一个字符串,读取首尾相同的字符,例如,radar toot madam。 我们想构造一个算法输入一个字符串,并检查它是否是一个回文。 该问题的解决方案将使用 deque 来存储字符串的字符。我们从左到右处理字符串,并将每个字符添加到 deque 的尾部。在这一点上,deque 像一个普通的队列。然而,我们现在可以利用 deque 的双重功

  • 如果给定的字符串是回文,则返回 true ;否则返回 false 。 使用 toLowerCase() 转换字符串,并使用 String.replace() 从中删除非字母数字字符。 然后,在将其转换为 String.tolowerCase() 之后,将 String.split('') 为单独的字符,Array.reverse() ,String.join('')并与原始非反转字符串进行比较。

  • 本文向大家介绍Java程序检查字符串为回文,包括了Java程序检查字符串为回文的使用技巧和注意事项,需要的朋友参考一下 如果即使反向将每个字符的位置都保持不变,则字符串为回文字符串。例如,``MADAM''是回文字符串,因为即使反向将字符串``MADAM''也使每个字符的位置保持不变。作为回文与否,我们可以使用库方法,也可以不使用库方法。 但是,如果我们要检查“女士”是否是回文,则由于首字母大写,

  • 问题内容: 我正在尝试使用Python检查回文。我拥有的代码是非常for循环的。 在我看来,当人们从C转到Python时,最大的错误就是尝试使用Python实现C逻辑,这使事情运行缓慢,并且只是没有充分利用该语言。 我在这个网站上看到了。搜索“ C-style for”,即Python没有C-style for循环。可能已经过时,但是我将其解释为意味着Python具有自己的方法。 我尝试环顾四周,

  • 当输入像“os so”这样的字符串时,输出不正确,因为该字符串没有作为回文报告。这个问题似乎与空格有关,因为如果相同的字符串中没有空格,它将正确地作为回文报告。我真的有兴趣了解这个代码的缺陷,任何帮助都将非常感谢!