1、C语言版本2、Python 3版本作为一名程序员,给定一个32位有符号整数x,可能会想到使用字符串翻转或者栈来解决。我们定义了一个long long类型变量res来存储结果。
作为一名程序员,我们经常要解决各种算法问题。而这些问题不仅考验了我们的编程能力,更锻鍊了我们的思维能力。今天,我想分享一道LeetCode上比较简单但又很实用的算法题:整数反转。
宝山网站建设公司创新互联建站,宝山网站设计制作,有大型网站制作公司丰富经验。已为宝山1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的宝山做网站的公司定做!
在这个题目中,给定一个32位有符号整数x, 要求将其颠倒过来,并返回新的整数。如果超出范围,则返回0。
首先看到这个问题时,可能会想到使用字符串翻转或者栈来解决。但是,在本文中我将介绍两种简洁而高效的方法:C语言和Python 3版本。
```c
int reverse(int x){
long long res = 0;
while(x != 0){
res = res * 10 + x % 10;
if(res > INT_MAX || res< INT_MIN)
return 0;
x /= 10;
}
return (int)res;
}
```
以上代码中,我们定义了一个long long类型变量res来存储结果。由于输入参数是32位有符号整形数字,在计算过程中可能会造成溢出情况发生。
因此需要在运行结果之前检查是否超出INT_MAX或INT_MIN值域范围,如果超出则直接返回0。
```python
class Solution:
def reverse(self, x: int) -> int:
if x< 0 :
return -self.reverse(-x)
res = 0
while x > 0:
res = res * 10 + x % 10
x //= 10
return res if res<= pow(2,31)-1 else 0
以上代码中,我们定义了一个类Solution来实现整数反转的功能。与C语言不同之处在于Python可以处理更大范围的数字而无需担心溢出问题。
因此,在这个算法中我们只需要考虑输入参数是否小于零以及结果是否超过32位有符号整型即可。
最后,我想说一句:编程思维是一种非常宝贵的能力。当你掌握了这种技能时,你将会解决更多的问题并且成为一个更好的程序员。
所以,请保持学习和思考,并享受LeetCode带给你的快乐吧!
网站名称:每日LeetCode-7.整数反转(C语言和Python3)
链接URL:http://www.shufengxianlan.com/qtweb/news29/47779.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联