柚子快报邀请码778899分享:算法练习之整数反转,回文数

http://yzkb.51969.com/

最近在学习java,但是对于数据操作那部分还是不熟悉

因此决定找几个简单的算法写,用php和java分别实现

1.给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123

输出: 321

 示例 2:

输入: -123

输出: -321

示例 3:

输入: 120

输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

java

class Solution {

public int reverse(int x) {

int ans = 0;

int pop = 0;

while(x != 0) {

pop = x % 10;

x /= 10;

//是否溢出

if(pop < 0 && ans < (Integer.MIN_VALUE - pop)/10) return 0;

if(pop > 0 && ans > (Integer.MAX_VALUE - pop)/10) return 0;

ans = ans * 10 + pop;

}

return ans;

}

}

php

class Solution {

function reverse($x) {

$sign = 1;

if($x<0){

$sign =-1;

$x= -$x;

}

$rs = 0;

$mod = 0;

while($x>9){

$mod=$x%10;

$rs = $rs*10+$mod;

$x = ($x-$mod)/10;

}

$rs = $rs*10+$x;

if($sign==-1){

$rs = '-'.$rs;

}

$rs = (int)$rs;

//是否溢出

if(pow(-2,31)<$rs &&$rs

return $rs;

}

return 0;

}

}

2.回文数

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

示例 1:

输入: 121

输出: true

示例 2:

输入: -121

输出: false

解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: 10

输出: false

解释: 从右向左读, 为 01 。因此它不是一个回文数。

java

class Solution {

public boolean isPalindrome(int x) {

if(x<0) return false;

int ans = 0;

int pop = 0;

int tmp = x;

while(tmp != 0) {

pop = tmp % 10;

tmp /= 10;

ans = ans * 10 + pop;

}

if(x==ans) return true;

return false;

}

}

php

class Solution {

function isPalindrome($x) {

if($x<0) return false;

$rs = 0;

$mod = 0;

$tmp = $x;

while($tmp!=0){

$mod=$tmp%10;

$rs = $rs*10+$mod;

$tmp = ($tmp-$mod)/10;

}

if($rs==$x)return true;

return false;

}

}

 

柚子快报邀请码778899分享:算法练习之整数反转,回文数

http://yzkb.51969.com/

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。