在这个挑战中,你很难记住字母表中的字母。为了避免这种情况,你可以在字母表上上下移动,直到你到达字母为止。
因为您希望代码是可移植的,所以您将使用字母块来编写它。您有有限数量的字母块,因为其中大多数是被盗的,所以您需要确保您的代码尽可能短。
输入/输出对用空行分隔:
Ac
ABc
Ad
ABcd
fA
fedCBA
adB
abcdcB
Hello, World!
HGfefghijkllmno, WVUTSrqpopqrqponmlkjihgfed!您的目标是用字母(A-Za-z)之间的所有中间字母链接相邻的字母。如果大写不同,则应在中间转换大写。如果资本化不能在中间均匀地转换,它就会在中间之后解体。如果某个字符不是按字母顺序排列的字符,则不应该进行转换。
这是密码-高尔夫,所以最短的代码以字节为单位获胜!
-10%奖金:如果您的代码链数字
发布于 2015-11-16 06:06:31
发布于 2015-11-09 07:33:02
太长了,但至少是第一次。
f=lambda p:ord(p.lower())
u=lambda p:"".join(p).upper()
s=raw_input()
w=s[0]
r=w
for q in s[1:]:
o=q+w
if q==w:o=""
if o.isalpha():
m=(f(w)<f(q))*2-1
e=map(chr,range(f(w)+m,f(q)+m,m))
if o==u(o):e=u(e)
elif q==u(q):e[len(e)/2:]=u(e[len(e)/2:])
elif -o.islower()+1:e[:len(e)/2]=u(e[:len(e)/2])
r+="".join(e)
else:
r+=q
w=q
print rhttps://codegolf.stackexchange.com/questions/63252
复制相似问题