我在试着解7。反向整数在leetcodehttps://leetcode.com/problems/reverse-integer/.
给定一个有符号的32位整数x,返回x并反转其数字。如果反转x导致值超出有符号32位整数范围[-2^31,2^31-1],则返回0。
例1:
Input: x = 123
Output: 321
我对上述问题的解决方案是
class Solution {
public int reverse(int x) {
int num=0;
if(x>Integer.MAX_VALUE||x<Integer.MIN_VALUE) return 0;
while(x!=0){
int a=x%10;
num=num*10+a;
x=x/10;
}
return num;
}
}
我弄错了4个测试用例。其中之一是:
示例
Input: 1534236469
Output : 1056389759
Expected: 0
输入:123输出:321输入:-123输出:-321输入:120输出:2
类解决方案{公共: int反向(int x){
int rev = 0;
constexpr int top_limit = INT_MAX/10;
constexpr int bottom_limit = INT_MIN/10;
while (x) {
if (rev > top_limit || rev < bottom_limit)
return 0;
rev = rev * 10 + x % 10;
x /= 10;
}
return rev;
}
};
你选择的方法并不遥远。
x
是否在无符号整数范围内。但他们要求检查x射线
如果将结果num
聚合到一个long类型的变量中,如果在反转后结果超出无符号int的范围,则拒绝/归零,这两个问题都可以解决。
你也可以用数学。补遗(a,b),数学。在溢出后立即退出multiplyExact(a、b)和try catch。
您的问题是溢出在num
变量中,您没有检查它。在执行num=num*10a
之前,通过添加检查以确保计算不会溢出,您可以在必要时返回0
。
此外,你没有正确处理负数。预先检查一个负数可以让你处理一个正数,然后直接否定结果。
class Solution {
public int reverse(int x) {
int num=0;
Boolean negative = false;
if (x < 0) {
x = -x;
negative = true;
}
while(x!=0){
int a=x%10;
// Check if the next operation is going to cause an overflow
// and return 0 if it does
if (num > (Integer.MAX_VALUE-a)/10) return 0;
num=num*10+a;
x=x/10;
}
return negative ? -num : num;
}
}
下面的问题是我想反转一个整数的位数。 < li >例1: x = 123,返回321 < li >示例2: x = -123,return -321 我的代码适用于9位数以下的所有情况。如果是10位输入,则不会写入相反的值。我该怎么做? 我的代码是:
问题是:整数的倒数。 示例1:x=123,返回321 例2:x=-123,返回-321 你注意到反整数可能会溢出吗?假设输入是32位整数,则100000003溢出的相反值。你应该如何处理此类案件? 抛出异常?很好,但是如果抛出异常不是一个选项呢?然后必须重新设计函数(即,添加一个额外的参数)。 从我搜索的网站的解决方案是: 但是,当时,控制台会打印,而不是。因此,如果我们不能使用异常,这个解决方案
尝试了所有方法来通过测试用例,但仍然只显示一个错误。我不知道如何纠正这个错误。 输入:1534236469 实际输出:1056389759 预期输出:0 我不知道为什么我的代码没有给出输出0。
本文向大家介绍使用JavaScript返回整数的反向数组,包括了使用JavaScript返回整数的反向数组的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,该函数接受一个数字并返回一个元素数组,其中包含从n到1的所有自然数。 输入 输出 示例 以下是代码- 输出结果
我对编码和练习leetcode问题还不熟悉。整数反向问题涉及溢出。 我已经搜索并讨论了关于如何处理溢出的大部分内容。有人能解释一下溢出的原因吗?
我的反向整数代码在LeetCode上不被接受。 我检查了我的程序是否可以返回正确答案。 对于一个输入的情况,我的程序返回正确的输出。 但是有错误,我的代码不被接受。什么是问题,我应该如何修复我当前的代码?