给定一个字符串和一个数组作为输入,您的任务是输出输入字符串在典型的Mobile上输入时将打印的文本。在Mobile中,通过按n次按钮输入字母,其中n是字母在按钮标签上的位置。因此,22应该输出b。

[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"])。这将给您节省一些字节。#符号将切换大小写。最初的情况会更低。因此,2#3应该输出aD。0将添加一个空格。因此,202应该输出a a。aa,输入字符串将是2 2。你可以用你的语言支持的任何方式接受输入。
您可以以任何想要的方式输出结果。函数return也是允许的。
#4440555#666888330#999#66688111 -> "I Love You!"
#6#33777 7779990#222#4477744477778627777111 -> "Merry Christmas!"
#44#27 79990#66#3390#999#332777111 -> "Happy New Year!"这是密码-高尔夫,所以以字节为单位的最短代码获胜!
发布于 2016-12-24 17:32:36
新的关键东西花了我太多钱。
ss.emr!FZk@@QsedthdfndeTrb8cz\#测试套房。
发布于 2016-12-24 19:22:07
高尔夫球:
f=h=>a=>(o=c="")+a.match(/#|(.)\1*/g).forEach(e=>e==" "?0:e=="#"?c=!c:(n=h[e[0]][e.length-1])*(o+=c?n.toUpperCase():n))?o:0;f=h=>a=>(o=c="")+a.match(/#|(.)\1*/g).forEach(e=>e==" "?0:e=="#"?c=!c:(n=h[e[0]][e.length-1])*(o+=c?n.toUpperCase():n))?o:0;
console.log(f([" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"])("#4440555#666888330#999#66688111"));
console.log(f([" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"])("#6#33777 7779990#222#4477744477778627777111"));
console.log(f([" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"])("#44#27 79990#66#3390999332777111"));未高尔夫球:
f=(a,h)=>{
//out string
o="";
//uppercase or lowercase (initialized as "" and then inverted in golfed version)
c=0;
//split it into array of instructions, which are sets of repeated characters, or # solely alone
a.match(/#|(.)\1*/g).forEach((e)=>{
e==" "?0:
e=="#" ? (c=!c) : ( ()=>{ //lambda added because two statements ungolfed, multiplied in the golfed version
n=h[e[0]][e.length-1];
o+=c?n.toUpperCase():n;
})()
})
return o;
}发布于 2016-12-24 03:35:07
(a,b)=>{u="l";p=[];r="";a.split``.map((c,i)=>p.push(c!=a[i-1]?" "+c:c));p.join``.trim().replace(' ', ' ').split` `.map(l=>{if(l=="#"){u=(u=="l"?b.forEach((y,j)=>b[j]=y.toUpperCase())||"u":b.forEach((y,j)=>b[j]=y.toLowerCase())||"l")}else{if(l!=" "){r+=b[+l[0]][l.length-1]}else{r+=" "}}});return r}f=(a,b)=>{u="l";p=[];r="";a.split``.map((c,i)=>p.push(c!=a[i-1]?" "+c:c));p.join``.trim().replace(' ', ' ').split` `.map(l=>{if(l=="#"){u=(u=="l"?b.forEach((y,j)=>b[j]=y.toUpperCase())||"u":b.forEach((y,j)=>b[j]=y.toLowerCase())||"l")}else{if(l!=" "){r+=b[+l[0]][l.length-1]}else{r+=" "}}});return r}
console.log(f("#4440555#666888330#999#66688111 ",[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]));
console.log(f("#6#33777 7779990#222#4477744477778627777111",[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]));
console.log(f("#44#27 79990#66#3390#999#332777111",[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]));我知道这很长,但这是我所能做的最好的。
https://codegolf.stackexchange.com/questions/104379
复制相似问题