讨论/题目交流/请各位大佬指点一下,哪里有问题,谢谢/
请各位大佬指点一下,哪里有问题,谢谢

class Solution {
public int reverse(int x) {
if (x >= 0) {
return DaoXU(Quyu(x));
} else {
int z = 0 - DaoXU(Quyu(Math.abs(x)));
return z;
}
}

public int DaoXU(int a) {
	StringBuffer stringBuffer = new StringBuffer(String.valueOf(a));
	Long long1 = new Long(stringBuffer.reverse().toString().trim());
	long l = long1;
	if (long1 < Integer.MAX_VALUE || long1 > Integer.MIN_VALUE) {
		int x = (int) l;
		return x;
	} else {
		return 0;
	}
}

public int Quyu(int x) {
	int y = 0;
	if (x == 0) {
		return 0;
	} else {
		if (x % 10 == 0) {
			y = x / 10;
			Quyu(y);
		} else {
			return x;
		}
	}
	return y;
}

}

展开讨论
共 1 个讨论

你有些不必要的操作啊 正负数那里并不需要判断
还有你的代码可读性着实有点低 判断语句太乱了
你的思路是想把这个字符串先转换成数字然后处理了是十的整倍数只返回高位不含0的有效数字 然后再把数字转换成字符串再反转吧 ?
你daoxu里面那个判断是否越界语句难道不应该是&&吗?
正好这道题我写了题解 你可以看下栈的思想
函数以后尽量不要用拼音

1