LeetCode 9. 回文数
2020-02-09 23:00 jiayayao 阅读(164) 评论(0) 编辑 收藏 举报判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
Solutions:
1. 可以把int转换为字符串,然后检查字符串是否是回文串即可,但是这样会消耗不少空间
2. 本体的思路是依次对int取左右两边的数值并对比
当整数一致时,继续向中间比较,直至输入整数变为0时,返回true
当整数不一致时,不是回文数,返回false
// twosum.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <vector> #include <map> #include <unordered_map> #include <stdio.h> #include <iostream> #include <algorithm> using namespace std; class Solution { public: bool isPalindrome(int x) { if (x < 0) { return false; } int div = 1; while (x/div >= 10) { div *= 10; } while (x>0) { int left = x / div; int right = x % 10; if (div >= 1 && left == right) { x -= left * div; x -= right; x /= 10; div /= 100; } else { return false; } } if (0 == x) { return true; } return false; } }; int main() { Solution s; bool ret = s.isPalindrome(12121); return 0; }
本文来自博客园,作者:jiayayao,邮箱:jiayayao@126.com,转载请注明原文链接:https://www.cnblogs.com/jiayayao/p/12289299.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架