classSolution(object): defisPalindrome(self, x): if x < 0: returnFalse str_x = str(x) left = 0 right = len(str_x) - 1 while left < right: if str_x[left] != str_x[right]: returnFalse left += 1 right -= 1 returnTrue
结果
执行用时 : 82 ms, 击败 81.38% 使用 Python 的用户
内存消耗 : 12.87 MB, 击败 85.78% 使用 Python 的用户
Python3
1 2 3 4 5 6 7 8 9 10 11 12 13
classSolution: defisPalindrome(self, x: int) -> bool: if x < 0: returnFalse str_x = str(x) left = 0 right = len(str_x) - 1 while left < right: if str_x[left] != str_x[right]: returnFalse left += 1 right -= 1 returnTrue
结果
执行用时 : 56 ms, 击败 92.88% 使用 Python3 的用户
内存消耗 : 17.05 MB, 击败 5.11% 使用 Python3 的用户
C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include<stdbool.h>
boolisPalindrome(int x) { if (x < 0) { returnfalse; } longlong reversed = 0; int original = x; while (x > 0) { int digit = x % 10; reversed = reversed * 10LL + digit; x /= 10; } return original == reversed; }
结果
执行用时 : 8 ms, 击败 77.34% 使用 C 的用户
内存消耗 : 6.36 MB, 击败 88.88% 使用 C 的用户
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
publicclassSolution { publicboolIsPalindrome(int x) { if (x < 0) { returnfalse; } int original = x; int reversed = 0; while (x != 0) { int digit = x % 10; reversed = reversed * 10 + digit; x /= 10; } return original == reversed; } }
结果
执行用时 : 44 ms, 击败 51.96% 使用 C# 的用户
内存消耗 : 30.38 MB, 击败 32.71% 使用 C# 的用户
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/** * @param {number} x * @return {boolean} */ var isPalindrome = function(x) { if (x < 0) { returnfalse; } let original = x; let reversed = 0; while (x > 0) { let digit = x % 10; reversed = reversed * 10 + digit; x = Math.floor(x / 10); } return original === reversed; };
结果
执行用时 : 172 ms, 击败 25.28% 使用 JavaScript 的用户
内存消耗 : 55.16 MB, 击败 6.23% 使用 JavaScript 的用户
TypeScript
1 2 3 4 5 6 7 8 9 10 11 12 13
functionisPalindrome(x: number): boolean { if (x < 0) { returnfalse; } let original = x; let reversed = 0; while (x > 0) { const digit = x % 10; reversed = reversed * 10 + digit; x = Math.floor(x / 10); } return original === reversed; }
classSolution { funcisPalindrome(_x: Int) -> Bool { if x <0 { returnfalse } var original = x var reversed =0 var num = x while num >0 { let digit = num %10 reversed = reversed *10+ digit num /=10 } return original == reversed } }
结果
执行用时 : 28 ms, 击败 79.49% 使用 Swift 的用户
内存消耗 : 15.09 MB, 击败 5.13% 使用 Swift 的用户
Kotlin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
classSolution { funisPalindrome(x: Int): Boolean { if (x < 0) { returnfalse } var original = x var reversed = 0 var num = x while (num > 0) { val digit = num % 10 reversed = reversed * 10 + digit num /= 10 } return original == reversed } }
结果
执行用时 : 200 ms, 击败 85.11% 使用 Kotlin 的用户
内存消耗 : 35.91 MB, 击败 45.75% 使用 Kotlin 的用户
Dart
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
classSolution{ bool isPalindrome(int x) { if (x < 0) { returnfalse; } String strX = x.toString(); int left = 0; int right = strX.length - 1; while (left < right) { if (strX[left] != strX[right]) { returnfalse; } left++; right--; } returntrue; } }
结果
执行用时 : 496 ms, 击败 11.76% 使用 Dart 的用户
内存消耗 : 146.45 MB, 击败 100.00% 使用 Dart 的用户
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
funcisPalindrome(x int)bool { if x < 0 { returnfalse } strX := strconv.Itoa(x) left, right := 0, len(strX)-1 for left < right { if strX[left] != strX[right] { returnfalse } left++ right-- } returntrue }
结果
执行用时 : 12 ms, 击败 66.98% 使用 Go 的用户
内存消耗 : 4.36 MB, 击败 22.27% 使用 Go 的用户
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# @param {Integer} x # @return {Boolean} defis_palindrome(x) returnfalseif x < 0 str_x = x.to_s left = 0 right = str_x.length - 1 while left < right returnfalseif str_x[left] != str_x[right] left += 1 right -= 1 end true end
objectSolution{ defisPalindrome(x: Int): Boolean = { if (x < 0) { false } else { val strX = x.toString val len = strX.length var left = 0 var right = len - 1 while (left < right) { if (strX(left) != strX(right)) { returnfalse } left += 1 right -= 1 } true } } }
结果
执行用时 : 504 ms, 击败 66.67% 使用 Scala 的用户
内存消耗 : 52.84 MB, 击败 79.17% 使用 Scala 的用户
Rust
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
implSolution { pubfnis_palindrome(x: i32) ->bool { if x < 0 { returnfalse; } letmut num = x; letmut reversed = 0; letoriginal = x; while num != 0 { letdigit = num % 10; reversed = reversed * 10 + digit; num /= 10; } original == reversed } }
结果
执行用时 : 4 ms, 击败 76.59% 使用 Rust 的用户
内存消耗 : 2.08 MB, 击败 38.68% 使用 Rust 的用户
Racket
1 2 3 4 5 6 7 8 9
(define (is-palindrome x) (define (reverse-number n) (let loop ((num n) (reversed0)) (if (= num 0) reversed (loop (quotient num 10) (+ (* reversed 10) (remainder num 10)))))) (if (< x 0) #f (= x (reverse-number x))))