个人随笔
目录
leetcode(六)、回文数
2021-06-29 18:29:39

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121
输出:true
示例 2:

输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:

输入:x = -101
输出:false

提示:

-231 <= x <= 231 - 1

进阶:你能不将整数转为字符串来解决这个问题吗?

解题要点

懒得考虑了,就专成字符串

  1. public class Test8 {
  2. /**
  3. * 这里直接当作是字符串处理即可,难度系数完全比不上回文子串:简单是简单,为啥击败的人这么少,感觉已经是极致了呀
  4. * 执行用时:20 ms, 在所有 Java 提交中击败了6.98%的用户内存消耗:37.7 MB, 在所有 Java 提交中击败了75.97%的用户
  5. */
  6. public boolean isPalindrome(int x) {
  7. String str = x+"";
  8. //二分即可
  9. int length = str.length();
  10. if(length==1) {
  11. return true;
  12. }
  13. int left=0;
  14. int right = length-1;
  15. while(left<right){
  16. //回文的特性就是第一位等于最后一位,以此类推即可
  17. if(str.charAt(left++)!=str.charAt(right--)) {
  18. //如果不等于
  19. return false;
  20. }
  21. }
  22. return true;
  23. }
  24. public static void main(String[] args) {
  25. System.out.println(new Test8().isPalindrome(121));
  26. System.out.println(new Test8().isPalindrome(-121));
  27. System.out.println(new Test8().isPalindrome(10));
  28. System.out.println(new Test8().isPalindrome(-101));
  29. System.out.println(new Test8().isPalindrome(11));
  30. }
  31. }

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 229

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2