avatar
请问这是怎么回事# Joke - 肚皮舞运动
a*e
1
我觉得思路很简单,就是程序写不对。
下午还特别犯困,看到别的答案很简洁,自己的程序怎么调都通不过。
很郁闷。请问这种情况下自己花很多时间一步一步debug把程序写对到底值不值,还是
干脆找个标准答案记下来算啦?多谢指点。准备面试备受打击,觉得花在PH.D上的时间
还不如来趁年轻刷题啊。
bool isPalindrome(int x) {
if (x<0) return false;
if (x/10<1) return true;

int t = 1;
while(x/t>1)
t=t*10;
int a=1, b=t/10;
int left, right;
while (a<=b)
{
left = x/b;
right= (x%(a*10))/a;

if (left!=right)
return false;
else
{
x = x-left*b;
a=a*10;
b=b/10;
}
}

return true;

}
avatar
s*d
3
又是枪击案,现在人火气都很大啊。
avatar
g*d
4
avatar
e*s
5
当然要把程序调对 写程序很容易 debug才是最考验功力的
写好的程序用自己用例在脑子里面run一下

【在 a***e 的大作中提到】
: 我觉得思路很简单,就是程序写不对。
: 下午还特别犯困,看到别的答案很简洁,自己的程序怎么调都通不过。
: 很郁闷。请问这种情况下自己花很多时间一步一步debug把程序写对到底值不值,还是
: 干脆找个标准答案记下来算啦?多谢指点。准备面试备受打击,觉得花在PH.D上的时间
: 还不如来趁年轻刷题啊。
: bool isPalindrome(int x) {
: if (x<0) return false;
: if (x/10<1) return true;
:
: int t = 1;

avatar
x*2
6
thanks
avatar
l*h
7
哪国人干的?连接?

【在 s*******d 的大作中提到】
: 又是枪击案,现在人火气都很大啊。
avatar
t*g
8
镜子听说过?

【在 g********d 的大作中提到】

avatar
f*s
9
//use recursion
boolean isPalindrome(int num){
if(num<0) return false;
if(num<10) return true;

int length = (int) Math.log10(num) +1; //how many digits?

//compare the 1st and last digit
if (num/((int) Math.pow(10, length-1))!=num%10)
return false;

//chop off the 1st and last digit
return isPalindrome (((int)(num%(Math.pow(10, length-1))))/10);
}
avatar
i*4
10
thanks
avatar
H*7
12
不是镜子,男娃背影没变化
avatar
f*s
13
//use string
boolean isPalindrome(int num){
String numStr = String.valueOf(num);
String revStr = new StringBuilder(numStr).reverse().toString();
return numStr.equals (revStr);
}
avatar
m*n
14
谢谢
avatar
b*l
15
white male
avatar
l*t
16


【在 H******7 的大作中提到】
: 不是镜子,男娃背影没变化
avatar
s*x
17
思路应该是对的,用的额外变量太多了,只用一个顶多两个应该就行了。

★ 发自iPhone App: ChineseWeb 8.7

【在 a***e 的大作中提到】
: 我觉得思路很简单,就是程序写不对。
: 下午还特别犯困,看到别的答案很简洁,自己的程序怎么调都通不过。
: 很郁闷。请问这种情况下自己花很多时间一步一步debug把程序写对到底值不值,还是
: 干脆找个标准答案记下来算啦?多谢指点。准备面试备受打击,觉得花在PH.D上的时间
: 还不如来趁年轻刷题啊。
: bool isPalindrome(int x) {
: if (x<0) return false;
: if (x/10<1) return true;
:
: int t = 1;

avatar
s*c
18
3x~
avatar
x*7
19
一个白人至上主义的退伍兵,脑残地把锡克教徒当作
穆斯林,一顿乱枪,最后被赶到的警察给灭了
没有文化真可怕

【在 s*******d 的大作中提到】
: 又是枪击案,现在人火气都很大啊。
avatar
s*d
20
叶片是镜子啊。戴帽子的小孩站在这边不是左下角清楚的嘛。
画面来回换是因为正好跟摄像机frame rate一样。你站在那里看是不一样的。

【在 H******7 的大作中提到】
: 不是镜子,男娃背影没变化
avatar
s*x
21
Probably the most inefficient method.

★ 发自iPhone App: ChineseWeb 8.7

【在 f******s 的大作中提到】
: //use recursion
: boolean isPalindrome(int num){
: if(num<0) return false;
: if(num<10) return true;
:
: int length = (int) Math.log10(num) +1; //how many digits?
:
: //compare the 1st and last digit
: if (num/((int) Math.pow(10, length-1))!=num%10)
: return false;

avatar
m*n
22
thanks
avatar
g*n
23
美国应该允许大家公开佩戴手枪,就跟当年西部片一样。这样坏人想杀人时也要考虑一
下自己会不会立马被打死。

【在 x*7 的大作中提到】
: 一个白人至上主义的退伍兵,脑残地把锡克教徒当作
: 穆斯林,一顿乱枪,最后被赶到的警察给灭了
: 没有文化真可怕

avatar
c*e
24
我觉得是一帧一帧拍的

【在 g********d 的大作中提到】

avatar
s*x
25
This one actually pretty smart.

★ 发自iPhone App: ChineseWeb 8.7

【在 f******s 的大作中提到】
: //use string
: boolean isPalindrome(int num){
: String numStr = String.valueOf(num);
: String revStr = new StringBuilder(numStr).reverse().toString();
: return numStr.equals (revStr);
: }

avatar
b*k
27
可怜了那些莫名死掉的人。
avatar
H*g
28
有啊

【在 H******7 的大作中提到】
: 不是镜子,男娃背影没变化
avatar
A*i
29
Are you kidding me ? 题目好像要求不能转成string,你做过这题没啊

【在 s**x 的大作中提到】
: This one actually pretty smart.
:
: ★ 发自iPhone App: ChineseWeb 8.7

avatar
j*3
30
thx
avatar
H*g
31


【在 H********g 的大作中提到】
: 有啊
avatar
f*s
32
//no recursion, no string manipulation
//space O(1), time O(n)
boolean isPalindrome(int num){
if(num<0) return false;
int rev = 0; //reverse num
int num0 = num; //original value
while (num>0){
rev = rev * 10 + num % 10; //get the rightmost digit of num
num /= 10;
}
return rev==num0;
}
avatar
E*o
33
thx~~~
avatar
a*e
34
啊,这个写得真好
avatar
l*7
35
thanks!
avatar
f*s
36
Thanks! It took 3 attempts, as you can see. :)

【在 a***e 的大作中提到】
: 啊,这个写得真好
avatar
a*n
37
thanks
avatar
a*e
38
会不会有overflow的问题呢?比如1000000003在32位机器上。
avatar
R*i
40
楼主的code,
while(x/t>1)
==》
while (x >= t) 或者 while (x > t)
但是显然这个算法很坏。
avatar
a*e
41
算法很坏?是说这个算法很差?下面这个是对的
bool isPalindrome(int x) {
if (x<0) return false;

int d=1;
while(x/d>=10)
{
d*=10;
}

while(x>0)
{
int q=x/d;
int r=x%10;

if (q!=r)
return false;
else
{
x=(x%d)/10;
d=d/100;
}
}

return true;

}
avatar
R*i
42

真他娘的见鬼了,我把
while(x/d>=10)
换成
while(d*10<=x)
被告知Time Limit Exceeded
是楼主人品好还是编译器优化了? 哪位大牛能解释一下?

【在 a***e 的大作中提到】
: 算法很坏?是说这个算法很差?下面这个是对的
: bool isPalindrome(int x) {
: if (x<0) return false;
:
: int d=1;
: while(x/d>=10)
: {
: d*=10;
: }
:

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。