orzorz开始刷题
争取坚持每周平均下来简单题一天能做两道题吧
非常简单的题奇奇怪怪的错误orz越不做越菜
Num 7 整数反转 Reverse Integer
刚开始多给了一个变量来回折腾占地方,没注意到溢出
因为有溢出,在返回的时候(int) ans
开始设置的时候设置long ans,不然遇到溢出直接报错了。
class Solution {
public:
int reverse(int x) {
long ans=;
while(x!=)
{
ans=ans*+x%;
x=x/;
}
if(ans<- || ans> )
return ;
return (int)ans;
}
};
第一反应的比较麻烦的做法,刚开始ten的设置int疯狂报错orz没考虑到既然基础那多半10^n也溢出哇
已经改对了
class Solution {
public:
long ten(int x)
{
long a=;
while(x!=)
{
x--;
a=a*;
}
return a;
}
int reverse(int x) {
int x1=x;
long y,count;
y=;
count=;
while(x!=)
{
x=x/;
count++;
}
while(x1!=)
{
/**if(((x1%10)*ten(count)<-2147493648)||((x1%10)*ten(count)>2147483647))
return 0;*/
y+=x1%*ten(count--);
x1=x1/;
}
if(y < - || y > )
{
return ;
}
return (int)y;
}
};
更大范围应该是变成字符,在medium里,改天做呀~
Num 9 回文数 Palindrome Number
一次过
没啥说的
class Solution {
public:
bool isPalindrome(int x) {
if(x<)
return false;
int count=;
int a[];
while(x!=)
{
a[count++]=x%;
x=x/;
}
if(count==)
return true;
for(int i=;i<count/;i++)
{
if(a[i]!=a[count--i])
return false;
}
return true;
}
};