将数字序列转换为字母序列的最有效方法

时间:2018-06-07 13:19:29

标签: string algorithm

给出以下映射:

0->J, 1->I, 2->H, 3->G , 4->F, 5->E, 6->D, 7->C, 8->B, 9->A

并且还给出了一个数字字符串,预期的输出将是后者相应的映射。

E.g。如果输入为“2018”,则预期输出为“HJIB”。

我的问题是:是否有比迭代输入字符串的每个字符并映射它的直接方法更有效的过程?更具体地说,我想知道我是否能做得比以下更好:

String output="";
for(int i=0; i<input.length(); i++) {
 output=output+map(input.charAt(0));
}

1 个答案:

答案 0 :(得分:1)

在未显示的部分可以节省(我假设map是一个函数)。

使用映射初始化数组,即m [0] ='J',m [1] ='I',...

然后执行m[input.charAt(i)]而不是map(input.charAt(i))

当然使用StringBuilder而不是字符串连接(假设这是Java)。