Redian新闻
>
Surface Pro 3看起来不错
avatar
Surface Pro 3看起来不错# PDA - 掌中宝
k*t
1
给你26个字母,从A-Z, 用大小为26的数组letters存放。 input为一个integer,
output为一个string. 举例如下:
input->output
0 -> A
1 -> B
2 -> C
.......
25 -> Z
26 -> AA
27 -> AB
........
51 -> AZ
676 -> AAA
677 -> AAB
..........
我用的方法就是%, /. 但遇到比较tricky的问题就是最后当input为小于26时,我要减1
,再取对应的character. 比如: input为52, 52%26 == 0, letters[0] = 'A', 当前结
果为“A”,然后update52/26=2, 用2%26==2, letter[2] == 'C', append 'C' into
the head of the string, it would be wrong as the result is "CA" while the
correct result should be "BA". 但是有些case, 比如input是675时,我写的算法是
对的。感觉绕进去出不来了。
avatar
z*h
2
那啥,我已经有了一张ritz carlton 140K的卡,想再弄张marriott 70K的卡凑大礼包
,肯定要打客服电话先把ritz的账号转成marriott的,不过网上看到很多说marriott转
ritz的,像我这么反过来操作应该不会有什么问题吧?
另外,转了后,原来的ritz账号都没有了,那么以后刷ritz卡赚的点数会到哪里去啊?
会自动打到新的marriott账户里去么?
谢谢了哇!
avatar
M*e
3
比较喜欢穿连衣裙,办公室又冷,所以有时候会搭配件黑丝袜。
结果昨天男朋友说穿黑丝会给人不好的联想,而且还不如光腿好看。
可我明明在校园里也看过一些白美眉穿的呀,有人丝袜都还是破的。。
不搭丝袜,要怎么穿呢?尤其是对那种膝盖以上的短裙,很容易走光啊
avatar
o*t
4
到Best Buy看了一下,做工比2代那个砖头强多了,屏幕看起来也很好。
avatar
z*e
5
你先说说26这个这么解码
是bf还是z
avatar
m*r
6
转了点数账号就没了(⊙o⊙)…
avatar
d*9
7
不用听你男朋友的,黑短裙配黑丝袜挺漂亮的,前提是丝袜应该是有透明感的少有花纹
的才适合上班。如果是网格或者其他五花八门的暗花或者图案才会有“不好的联想”。
否则你就放心大胆穿吧。
如果怕冷,我在日本工作过,日本的MM都在办公室放一个大披肩,或者批身上或者折叠
一下盖在腿上,很方便的。

【在 M******e 的大作中提到】
: 比较喜欢穿连衣裙,办公室又冷,所以有时候会搭配件黑丝袜。
: 结果昨天男朋友说穿黑丝会给人不好的联想,而且还不如光腿好看。
: 可我明明在校园里也看过一些白美眉穿的呀,有人丝袜都还是破的。。
: 不搭丝袜,要怎么穿呢?尤其是对那种膝盖以上的短裙,很容易走光啊

avatar
r*8
8
是啊, 这个3:2的屏幕真心不错
avatar
i*y
9
这是rocket fuel的题吧。。
avatar
z*h
10
那岂不是原来的ritz卡就废掉了?
avatar
y*s
11
分!

比较喜欢穿连衣裙,办公室又冷,所以有时候会搭配件黑丝袜。
结果昨天男朋友说穿黑丝会给人不好的联想,而且还不如光腿好看。
可我明明在校园里也看过一些白美眉穿的呀,有人丝袜都还是破的。。
不搭丝袜,要怎么穿呢?尤其是对那种膝盖以上的短裙,很容易走光啊

【在 M******e 的大作中提到】
: 比较喜欢穿连衣裙,办公室又冷,所以有时候会搭配件黑丝袜。
: 结果昨天男朋友说穿黑丝会给人不好的联想,而且还不如光腿好看。
: 可我明明在校园里也看过一些白美眉穿的呀,有人丝袜都还是破的。。
: 不搭丝袜,要怎么穿呢?尤其是对那种膝盖以上的短裙,很容易走光啊

avatar
i*y
12
这是rocket fuel的题吧。。
avatar
h*i
13
我也是先有140k,再有70k
没那么麻烦,它们两个是同一个帐号,你申请70k的时候填上ritz的帐号就行
avatar
M*e
14
披肩也是个很好的办法,学习了。。

【在 d****9 的大作中提到】
: 不用听你男朋友的,黑短裙配黑丝袜挺漂亮的,前提是丝袜应该是有透明感的少有花纹
: 的才适合上班。如果是网格或者其他五花八门的暗花或者图案才会有“不好的联想”。
: 否则你就放心大胆穿吧。
: 如果怕冷,我在日本工作过,日本的MM都在办公室放一个大披肩,或者批身上或者折叠
: 一下盖在腿上,很方便的。

avatar
i*y
15
这是rocket fuel的题吧。。
avatar
t*h
16
貌似26进至 又不完全是 否则应该是BA而不是AA开头

【在 k*******t 的大作中提到】
: 给你26个字母,从A-Z, 用大小为26的数组letters存放。 input为一个integer,
: output为一个string. 举例如下:
: input->output
: 0 -> A
: 1 -> B
: 2 -> C
: .......
: 25 -> Z
: 26 -> AA
: 27 -> AB

avatar
b*7
17
26进制,注意最高位对应方式是[1-26]=>[A-Z],其他位时[0-25]=>[A-Z]。
string convert(int n)
{
assert(n >= 0);
vector r;
do{
r.push_back(n%26);
n /= 26;
}while(n > 0);
reverse(r.begin(), r.end());
if(r.size() > 1){
r[0] --;
}
string s(r.size(), ' ');
for(int i = 0; i < s.length(); i++){
s[i] = 'A' + r[i];
}
return s;
}
avatar
k*t
18
面试时, 没问解码的事,就是给定一个数输出一个string. 26对应的就是"AA". 不知有
没有回答你的问题。

【在 z****e 的大作中提到】
: 你先说说26这个这么解码
: 是bf还是z

avatar
r*n
19
这就是不同numeral之间的转换吧
你可以用长除法把十进制转换成二进制,同理你可以用长除法把十进制转换成26进制,
然后再把0~25 map 到 'A' ~ 'Z'
比较tricky的地方是最高位的判定方法
1. 如果次高位是整除没有余数,则最高位要减一之后再map
2. 如果此高位不是整除,则最高位直接map
E.x
0 ~ 25, 不能被26整除,最高位由0~25直接map得到
52, 长除法的余数是[2, 0],但是此高位是整除,所以应该用[1, 0]map得到BA
26^2-1, 长除法余数是[25, 25],但是此高位不是整除,所以直接用[25, 25]map得到
ZZ
avatar
r*n
20
显然不对啊
输入25,你的程序返回Y,但应该是Z

【在 b******7 的大作中提到】
: 26进制,注意最高位对应方式是[1-26]=>[A-Z],其他位时[0-25]=>[A-Z]。
: string convert(int n)
: {
: assert(n >= 0);
: vector r;
: do{
: r.push_back(n%26);
: n /= 26;
: }while(n > 0);
: reverse(r.begin(), r.end());

avatar
k*t
21
运行过了,有些case通过不了,比如676输出AAA, 你写的这个算法可以通过这个case。
但是如果输入是675,跑你这个程序的输出是"YZ", the output should be "ZZ", in
this case, you do NOT need to minus one.

【在 b******7 的大作中提到】
: 26进制,注意最高位对应方式是[1-26]=>[A-Z],其他位时[0-25]=>[A-Z]。
: string convert(int n)
: {
: assert(n >= 0);
: vector r;
: do{
: r.push_back(n%26);
: n /= 26;
: }while(n > 0);
: reverse(r.begin(), r.end());

avatar
k*t
22
如果input是28, 长除法的余数是[1, 2], 此高位不是被整除,所以直接用[1, 2]map到
"BC". In this case, the result should be "AC". 这个题目的tricky的地方就是最
高位有时要减1,有时不要。问题就是什么情况下要减1,什么情况下不要。继续求解啊。

【在 r*********n 的大作中提到】
: 这就是不同numeral之间的转换吧
: 你可以用长除法把十进制转换成二进制,同理你可以用长除法把十进制转换成26进制,
: 然后再把0~25 map 到 'A' ~ 'Z'
: 比较tricky的地方是最高位的判定方法
: 1. 如果次高位是整除没有余数,则最高位要减一之后再map
: 2. 如果此高位不是整除,则最高位直接map
: E.x
: 0 ~ 25, 不能被26整除,最高位由0~25直接map得到
: 52, 长除法的余数是[2, 0],但是此高位是整除,所以应该用[1, 0]map得到BA
: 26^2-1, 长除法余数是[25, 25],但是此高位不是整除,所以直接用[25, 25]map得到

avatar
h*s
23
题目不清楚
675就应该对应yz
然后676就是aaa了

【在 k*******t 的大作中提到】
: 如果input是28, 长除法的余数是[1, 2], 此高位不是被整除,所以直接用[1, 2]map到
: "BC". In this case, the result should be "AC". 这个题目的tricky的地方就是最
: 高位有时要减1,有时不要。问题就是什么情况下要减1,什么情况下不要。继续求解啊。

avatar
r*n
24
我觉得这个题有问题
[AA, BA, CA, ...,] 对应的是
[26*1, 26*2, 26*3, ...,]
但是如果是这样,那么ZA对应的就是26*26,但是26*26对应的是AAA

【在 k*******t 的大作中提到】
: 如果input是28, 长除法的余数是[1, 2], 此高位不是被整除,所以直接用[1, 2]map到
: "BC". In this case, the result should be "AC". 这个题目的tricky的地方就是最
: 高位有时要减1,有时不要。问题就是什么情况下要减1,什么情况下不要。继续求解啊。

avatar
t*y
25
这题在leetcode上you, 写了一个,
public string Translate(int n)
{
string s = string.Empty;
if (n < 0) return s;
while (n >= 0)
{
s = (char)('A' + n % 26) + s;
n = n / 26 - 1;
}
return s;
}
avatar
x*y
26
according to the rules, 675 should be YZ; then 676 should be ZA, right?
个位数是0到25, 26进制; 其他位上的数字是0到26, 27进制。
avatar
k*t
27
同意你的说法,当时在白版上算的时候就是算的26*26对应AAA,其实这是不对的,26*
26对应的应该是ZA。

【在 r*********n 的大作中提到】
: 我觉得这个题有问题
: [AA, BA, CA, ...,] 对应的是
: [26*1, 26*2, 26*3, ...,]
: 但是如果是这样,那么ZA对应的就是26*26,但是26*26对应的是AAA

avatar
k*t
28
你的理解是对的,675 should be YZ, 676 should be ZA.

【在 x***y 的大作中提到】
: according to the rules, 675 should be YZ; then 676 should be ZA, right?
: 个位数是0到25, 26进制; 其他位上的数字是0到26, 27进制。

avatar
d*n
29
不就是26进制的问题。

【在 k*******t 的大作中提到】
: 给你26个字母,从A-Z, 用大小为26的数组letters存放。 input为一个integer,
: output为一个string. 举例如下:
: input->output
: 0 -> A
: 1 -> B
: 2 -> C
: .......
: 25 -> Z
: 26 -> AA
: 27 -> AB

avatar
r*7
30
这道题的tricky在于 个位数 A 表示 0, 但是 十位数以上 A 表示1. 可以反着想,A
= 0,
AA = 1*26 +0. 所以如果是26进制十位就不应该有Z。 ZZ=26*26+25。 而不是 25*26+
25.
或者 0 就该表示为 AxAAAA。 反过来想想10进制也是这个道理。 0-9 10个数,等进
位时候,十位第一个是1(相当于B)。 而不是01(AA)这样算
avatar
s*5
32
在input integer加个1,再把26进制得到的div和module,都减掉1,搞定。
string int2str(int num) {
if(num < 0) return "";
string str;
char c;
while(num >= 26) {
int rem = (num+1) % 26;
if(rem == 0)
str = 'Z' + str;
else {
c = rem-1+'A';
str = c + str;
}
num = (num+1)/26-1;
}
c = num + 'A';
return c+str;
}

【在 k*******t 的大作中提到】
: 给你26个字母,从A-Z, 用大小为26的数组letters存放。 input为一个integer,
: output为一个string. 举例如下:
: input->output
: 0 -> A
: 1 -> B
: 2 -> C
: .......
: 25 -> Z
: 26 -> AA
: 27 -> AB

avatar
h*p
33
还是有bug test 676->ZA

【在 s***5 的大作中提到】
: 在input integer加个1,再把26进制得到的div和module,都减掉1,搞定。
: string int2str(int num) {
: if(num < 0) return "";
: string str;
: char c;
: while(num >= 26) {
: int rem = (num+1) % 26;
: if(rem == 0)
: str = 'Z' + str;
: else {

avatar
h*p
34
好像题目有错。676应该是ZA吧?
while loop里面num=(num+1)/26-1应该改成num=num/26-1吧

【在 s***5 的大作中提到】
: 在input integer加个1,再把26进制得到的div和module,都减掉1,搞定。
: string int2str(int num) {
: if(num < 0) return "";
: string str;
: char c;
: while(num >= 26) {
: int rem = (num+1) % 26;
: if(rem == 0)
: str = 'Z' + str;
: else {

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