Javascript LeetCode 125:回文数简易LeetCode

Javascript LeetCode 125:回文数简易LeetCode,javascript,algorithm,palindrome,Javascript,Algorithm,Palindrome,这是我的答案。然而,我无法通过“11”的测试用例。 我找不到代码中的错误。请帮忙!谢谢大家! /** *@param{number}x *@return{boolean} */ var isPalindrome=函数(x){ 如果(x==0){ 返回true; } 如果(xrev){ pop=x%10; x=x/10; 版本=(版本*10)+流行音乐; } 如果(x==rev | | x==rev/10){ 返回true; } 否则{ 返回false; } };查找回文本质上是一件通常使用字符

这是我的答案。然而,我无法通过“11”的测试用例。 我找不到代码中的错误。请帮忙!谢谢大家!

/**
*@param{number}x
*@return{boolean}
*/
var isPalindrome=函数(x){
如果(x==0){
返回true;
}
如果(x<0 | | x%10==0){
返回false;
}
设rev=0;
while(x>rev){
pop=x%10;
x=x/10;
版本=(版本*10)+流行音乐;
}
如果(x==rev | | x==rev/10){
返回true;
}
否则{
返回false;
}

};查找回文本质上是一件通常使用字符串而不是数字变量来完成的事情,因此我建议将数字转换为字符串,并从中开始:

var isPalindrome=函数(x){
x=x+“”;//如果x是数字,则转换为字符串
var isPalindrome=true;
对于(i=0;i控制台日志(isPalindrome(123439))查找回文本质上是一件通常使用字符串而不是数字变量来完成的事情,因此我建议将数字转换为字符串,并从中开始:

var isPalindrome=函数(x){
x=x+“”;//如果x是数字,则转换为字符串
var isPalindrome=true;
对于(i=0;i控制台日志(isPalindrome(123439))使用字符串检查回文非常简单明了。已经说过,如果你想知道如何在不将数字改为字符串的情况下做到这一点

  • 首先初始化一个变量,从
    Math.pow(10,数字计数-1)
  • 循环,直到start的值大于0
    • 内部循环比较第一个和最后一个数字,如果它们不相等,返回false
    • 在每次迭代中,从x中删除第一个和最后一个数字,并将start减少100
var isPalindrome=函数(x){
//根据leetcode上的问题,负值不能是回文
if(x<0){
返回错误
}
x=数学abs(x)
//为了从一开始就得到数字,我们需要得到给定值的log10
设len=Math.ceil(Math.max(Math.log10(x),1))-1
让我们开始=数学功率(10,len)
while(启动){
//比较第一个数字和最后一个数字
如果(数学楼层(x/起点)!=(x%10)){
返回错误
}
//删除当前x的第一位数字
x=x%开始
//删除当前x的最后一位
x=数学楼层(x/10)
//减少起始值100,因为我们删除了2个数字
开始=数学楼层(开始/100)
}
返回真值
};
控制台日志(isPalindrome(1))
控制台日志(isPalindrome(1221))
控制台日志(isPalindrome(-121))
控制台日志(isPalindrome(12341))

log(isAlindrome(100111))
使用字符串检查回文非常简单和直接。已经说过,如果你想知道如何在不将数字改为字符串的情况下做到这一点

  • 首先初始化一个变量,从
    Math.pow(10,数字计数-1)
  • 循环,直到start的值大于0
    • 内部循环比较第一个和最后一个数字,如果它们不相等,返回false
    • 在每次迭代中,从x中删除第一个和最后一个数字,并将start减少100
var isPalindrome=函数(x){
//根据leetcode上的问题,负值不能是回文
if(x<0){
返回错误
}
x=数学abs(x)
//为了从一开始就得到数字,我们需要得到给定值的log10
设len=Math.ceil(Math.max(Math.log10(x),1))-1
让我们开始=数学功率(10,len)
while(启动){
//比较第一个数字和最后一个数字
如果(数学楼层(x/起点)!=(x%10)){
返回错误
}
//删除当前x的第一位数字
x=x%开始
//删除当前x的最后一位
x=数学楼层(x/10)
//减少起始值100,因为我们删除了2个数字
开始=数学楼层(开始/100)
}
返回真值
};
控制台日志(isPalindrome(1))
控制台日志(isPalindrome(1221))
控制台日志(isPalindrome(-121))
控制台日志(isPalindrome(12341))
console.log(isPalindrome(100111))
您的问题似乎是正确的,在讨论板中,有一些很好的公认解决方案,例如:

JavaScript JavaScript II JAVA python
  • \W
    (非单词字符)匹配任何与
    \W
    不匹配的单个字符(与
    [^a-zA-Z0-9.]
    相同)
参考文献 您可以在以下链接中找到其他说明:

您的问题似乎是正确的,在讨论板上,有一些很好的公认解决方案,例如:

JavaScript JavaScript II JAVA python
  • \W
    (非单词字符)匹配任何与
    \W
    不匹配的单个字符(与
    [^a-zA-Z0-9.]
    相同)
参考文献 您可以在以下链接中找到其他说明:


为什么使用子字符串而不是使用索引来访问字符串元素?@CodeManiac我是一名Java开发人员(你能告诉我)
:-)
ah明白了:),这对我来说似乎太过分了,我们可以使用索引来简单地访问字符串元素,即
string[index]
为什么使用子字符串而不是使用索引来访问字符串元素?@CodeManiac我是一名Java开发人员(你能告诉我)
:-)
啊,明白了:),这对我来说似乎太过分了,我们可以使用索引简单地访问字符串元素,即
字符串[index]
问题y
var isPalindrome = function(x) {
    if (x < 0) 
        return false;

    let reversed = 0;
    for (let i = x; i > 0; i = Math.floor(i / 10)) 
        reversed = reversed * 10 + i % 10;

    return reversed === x;
};
class Solution:
    def isPalindrome(self, x):
        if x < 0 or (x > 0 and not x % 10):
            return False

        return str(x) == str(x)[::-1]
class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0 || (x != 0 && x % 10 == 0))
            return false;

        int reversed = 0;

        while (x > reversed) {
            reversed = reversed * 10 + x % 10;
            x /= 10;
        }

        return (x == reversed || x == reversed / 10);
    }
}
var isPalindrome = function(s) {
    var original = s.replace(/\W/g, ''); // means NON-WORD characters  
    var reversed = original.split('').reverse().join('');

    return original.toLowerCase() == reversed.toLowerCase();
};
var isPalindrome = function(s) {
    var original = s.replace(/[^a-z0-9]/isg, '');
    var reversed = original.split('').reverse().join('');

    return original.toLowerCase() == reversed.toLowerCase();
};

class Solution {
    public boolean isPalindrome(String s) {
        String original = s.replaceAll("(?i)[^a-z0-9]", "").toLowerCase();
        String reversed = new StringBuffer(original).reverse().toString();
        return original.equals(reversed);
    }
}
class Solution:
    def isPalindrome(self, s):
        s = ''.join(re.findall(r'(?is)[a-z0-9]+', s)).lower()
        return s == s[::-1]