avatar
你是怎么知道的# Joke - 肚皮舞运动
u*8
1
103页。那个电话号码对应字母的题目。为什么for loop里面,要在最后判断是不是等
于0 或者是1?
getCharKey(int , int )不就是可以把一个数字对应的3个之一的字母给返回了么?那
么是0或者是1,就返回空的不就够了。为什么要判断下0 1,这个不懂。
updates: code在这里
static final int PHONE_NUMBER_LENGTH = 7;
void printTelephoneWords(int[] phoneNum) {

char[] result = new char [PHONE_NUMBER_LENGTH];
doPrintTelephoneWords( phoneNum, 0, result);
}
void doPrintTelephoneWords(int[] phoneNum, int curDigit, char[] result) {
if ( curDigit == PHONE_NUMBER_LENGTH) {
System.out.println(new String(result) );
return;
}
for ( int i = 1; i <= 3 ; i++) {
result[curDigit] = getCharKey(phoneNum[curDigit], i);
doPrintTelephoneWords(phoneNum, curDigit+1; result);
if (phoneNum[curDigit] == 0 || phoneNum[curDigit] == 1)
return ;///这里是什么意思?都curDigit+1,都递归调用了,为什么最
后还判断1 0 ?
}
}
avatar
x*o
3
avatar
R*i
4
不能省略,因为程序里每个digit都hardcode成三个循环了,1和0不需要三个循环,事
实上return换成break也可以。
举个极端例子,111-1111,如果有判断,最后只打印一个结果,如果没有判断,最后会
打印2187个结果。
avatar
u*8
7
明白了。

【在 R*****i 的大作中提到】
: 不能省略,因为程序里每个digit都hardcode成三个循环了,1和0不需要三个循环,事
: 实上return换成break也可以。
: 举个极端例子,111-1111,如果有判断,最后只打印一个结果,如果没有判断,最后会
: 打印2187个结果。

avatar
k*y
8
为啥要像20+年前的电影,还是不懂?
avatar
x*o
9
不错
avatar
S*t
10
20年前的没有版权问题吧,否则还被吃版权官司不是更糗
也可能是兵者诡道也,实者虚之,让美帝无法分析天朝真实战力, 哈哈

【在 k********y 的大作中提到】
: 为啥要像20+年前的电影,还是不懂?
avatar
k*y
12
嗯,高招。。。
avatar
E*A
13
小纯洁。。。

【在 x***k 的大作中提到】
: 厨神。。。
avatar
w*5
14
恩,很好很强大,已阅!
avatar
f*e
15
还好
avatar
H*g
16
这集比较纯洁
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。