leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数

简介: leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数

leetcode7.整数反转


题目


给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。


题目链接


思路


题目给了我们一个整数x,我们需要把他进行反转,对于这个x,我们需要每次弹出x最低位,将最低位插

入到result的末尾。这样,x的低位就变成了result的高位,也就完成了反转。

需要注意的是我们要判断当前的结果是否越界。


代码Java


1. class Solution {
2.     public int reverse(int x) {
3.         int result=0;
4.         int INT_MAX=Integer.MAX_VALUE;
5.         int INT_MIN=Integer.MIN_VALUE;
6.         while(x!=0){
7.             int num=x%10;
8.             x/=10;
9. 
10.             if (result>INT_MAX/10 || (result==INT_MAX/10 && num > INT_MAX%10)){
11.                 return 0;
12.             }
13. 
14.             if (result<INT_MIN/10 || (result==INT_MIN/10 && num < INT_MIN%10)){
15.                 return 0;
16.             }
17. 
18.             result=result*10+num;
19.         }
20.         return result;
21. 
22.     }
23. }


leetcode8.字符串转换整数


题目


请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。

函数 myAtoi(string s) 的算法如下:

读入字符串并丢弃无用的前导空格

检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。

读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。

将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤 2 开始)。

如果整数数超过 32 位有符号整数范围 [−231,  231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1 。

返回整数作为最终结果。

注意:

本题中的空白字符只包括空格字符 ' ' 。

除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。

题目链接


思路


直接模拟即可


代码Java


1. class Solution {
2.     public int myAtoi(String s) {
3.         //获取int的边界值
4.         int INT_MAX=Integer.MAX_VALUE;
5.         int INT_MIN=Integer.MIN_VALUE;
6.         int len = s.length();
7. 
8.         //如果长度为0,则直接返回
9.         if(len==0) return 0;
10.         
11.         int res=0; //结果
12.         int i=0;  //下标志
13.         int flag=1; //正负号
14.         char[] s1=s.toCharArray(); //转化为char
15.         
16.         while(s1[i]==' ' && i<len-1){i++;} //跳过前面的空格
17.         if(s1[i]=='-'){flag=-1;} 
18.         if(s1[i]=='-' || s1[i]=='+'){i++;}
19. 
20.         //开始读数字
21.         while(i<len && Character.isDigit(s1[i])){
22.             int r=s1[i]-'0';
23.             //判断是否越界
24.             if(res>INT_MAX/10 || (res==INT_MAX/10 && r>7)){
25.                 return flag>0 ? INT_MAX:INT_MIN;
26.             }
27.             res=res*10+r;
28.             i++;
29.         }
30.         return flag>0 ? res:-res;
31.     }
32. }


leetcode9.回文数


题目


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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。


题目链接


思路


模拟一遍即可


代码python


1. class Solution:
2.     def isPalindrome(self, x: int) -> bool:
3.         s=str(x)
4. 
5.         i=0
6.         j=len(s)-1
7.         while i<j:
8. if s[i]==s[j]:
9.                 i+=1
10.                 j-=1
11. continue
12. else:
13. return False
14. return True
目录
相关文章
|
3月前
|
存储
LeetCode整数反转
解决LeetCode上的整数反转问题的几种方法,包括错误的方法和优化后的解决方案,以及如何避免反转后的整数超出32位有符号整数范围的问题。
48 1
|
3月前
|
算法
LeetCode回文数(暴力解,求更好的思路)
这篇博客讨论了如何判断一个整数是否为回文数,提供了暴力解法的代码,并寻求更优的算法建议。
59 1
LeetCode回文数(暴力解,求更好的思路)
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
280页PDF,全方位评估OpenAI o1,Leetcode刷题准确率竟这么高
【10月更文挑战第24天】近年来,OpenAI的o1模型在大型语言模型(LLMs)中脱颖而出,展现出卓越的推理能力和知识整合能力。基于Transformer架构,o1模型采用了链式思维和强化学习等先进技术,显著提升了其在编程竞赛、医学影像报告生成、数学问题解决、自然语言推理和芯片设计等领域的表现。本文将全面评估o1模型的性能及其对AI研究和应用的潜在影响。
59 1
|
3月前
|
JavaScript
力扣3333.找到初始输入字符串Ⅱ
【10月更文挑战第9天】力扣3333.找到初始输入字符串Ⅱ
42 1
|
3月前
|
C++
Leetcode第43题(字符串相乘)
本篇介绍了一种用C++实现的字符串表示的非负整数相乘的方法,通过逆向编号字符串,将乘法运算转化为二维数组的累加过程,最后处理进位并转换为字符串结果,解决了两个大数相乘的问题。
32 9
|
3月前
|
存储 C++
Leetcode第十二题(整数转罗马数字)
LeetCode第12题“整数转罗马数字”的解题方法,包括罗马数字的基本规则和特殊规则,以及如何使用C++实现整数到罗马数字的转换。
24 0
|
3月前
|
C++
Leetcode第十三题(罗马数字转整数)
这篇文章介绍了LeetCode第13题“罗马数字转整数”的解题方法,通过一个C++的类`Solution`中的`romanToInt`函数来实现,该函数使用哈希表和遍历字符串的方法,根据罗马数字的规则将输入的罗马数字字符串转换为对应的整数值。
62 0
|
3月前
|
算法 C++
Leetcode第八题(字符串转换整数(atoi))
这篇文章介绍了LeetCode上第8题“字符串转换整数(atoi)”的解题思路和C++的实现方法,包括处理前导空格、正负号、连续数字字符以及整数溢出的情况。
25 0
|
3月前
【LeetCode 22】459.重复的子字符串
【LeetCode 22】459.重复的子字符串
34 0
|
3月前
【LeetCode 20】151.反转字符串里的单词
【LeetCode 20】151.反转字符串里的单词
28 0