一个长度不大于100的字符串,其中只有手机按键上有的小写字母
输入可能包括多组数据,对于每组数据,输出按出Input所给字符串所需要的时间
bob www
7 7
type_cost = 1
wait_cost = 2
alpha_map = {
'a': 'abc',
'b': 'abc',
'c': 'abc',
'd': 'def',
'e': 'def',
'f': 'def',
'g': 'ghi',
'h': 'ghi',
'i': 'ghi',
'j': 'jkl',
'k': 'jkl',
'l': 'jkl',
'm': 'mno',
'n': 'mno',
'o': 'mno',
'p': 'pqrs',
'q': 'pqrs',
'r': 'pqrs',
's': 'pqrs',
't': 'tuv',
'u': 'tuv',
'v': 'tuv',
'w': 'wxyz',
'x': 'wxyz',
'y': 'wxyz',
'z': 'wxyz'
}
while True:
try:
type_str = input()
sum_cost = 0
for idx, alpha in enumerate(type_str):
# 输入第一个字母
if idx == 0:
sum_cost += alpha_map[alpha].find(alpha) + 1
else:
before_alpha = type_str[idx-1]
# 输入的字母与前一个字母在同一格子
if alpha_map[before_alpha] == alpha_map[alpha]:
sum_cost += wait_cost
sum_cost += alpha_map[alpha].find(alpha) + 1
print(sum_cost)
except:
break
while True:
try:
inp=list(input().strip())
list1=[['a','b','c'],['d','e','f'],['g','h','i'],
['j','k','l'],['m','n','o'],['p','q','r','s'],
['t','u','v'],['w','x','y','z']]
lenth=len(inp)
lenth2=len(list1)
index=''
time=0
for i in range(lenth):
index1=inp[i]
for j in range(lenth2):
if index1 in list1[j]:
if index in list1[j]:
time+=2
time+=list1[j].index(index1)+1
else:
time+=list1[j].index(index1)+1
break
index=index1
print(time)
except:
break
a1=['a','d','g','j','m','p','t','w'] b2=['b','e','h','k','n','q','u','x'] c3=['c','f','i','l','o','r','v','y'] d4=['s','z'] k1=['a','b','c'] k2=['d','e','f'] k3=['g','h','i'] k4=['j','k','l'] k5=['m','n','o'] k6=['p','q','r','s'] k7=['t','u','v'] k8=['w','x','y','z'] a=list(input()) c=0 for i in a: if i in a1: c+=1 if i in b2: c+=2 if i in c3: c+=3 if i in d4: c+=4 for j in range(len(a)-1): if a[j] in k1 and a[j+1] in k1: c+=2 if a[j] in k2 and a[j + 1] in k2: c += 2 if a[j] in k3 and a[j+1] in k3: c+=2 if a[j] in k4 and a[j + 1] in k4: c += 2 if a[j] in k5 and a[j+1] in k5: c+=2 if a[j] in k6 and a[j + 1] in k6: c += 2 if a[j] in k7 and a[j+1] in k7: c+=2 if a[j] in k8 and a[j + 1] in k8: c += 2 print(c)
#把键盘贴出来,一个记录结果,一个记录上一个键盘位的下标(初始为-1)
#如果在键盘里找到了该字符,则结果加上该字符在该键的下标+1,
#如果该字符所在键下标和上一个相等,结果+2,记录当前键下标
while True:
try:
keyboard = ['abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']
string = input()
result,lastIndex = 0,-1
for i in range(len(string)):
for j in range(len(keyboard)):
if keyboard[j].find(string[i]) != -1:
result += keyboard[j].find(string[i]) + 1
if lastIndex == j: #如果和上一个字符在同一个键盘位+2
result += 2
lastIndex = j
break
print(result)
except Exception:
break
l=['abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']
s=input()
time=0 t=[] for i in range(len(s)): for j in range(8): if s[i] in l[j]:
time+=l[j].find(s[i])+1 #字符串的find方法可以返回元素在字符串中的索引 t.append(j)
#将每个字母所在键的数字存在列表t中 #判断列表t中连续的两个元素是否相同
for k in range(1,len(t)): if t[k]==t[k-1]:
time+=2 print(time)
def getChar(char):
if char in "adgjmptw":
return (1, "adgjmptw".index(char))
elif char in "behknqux":
return (2, "behknqux".index(char))
elif char in "cfilorvy":
return (3, "cfilorvy".index(char))
elif char in "00000s0z":
return (4, "00000s0z".index(char))
import sys
for i in sys.stdin.readlines():
lastChar = None
res = 0
for char in i.strip():
curNum, tmpChar = getChar(char)
if tmpChar == lastChar:
res += 2
lastChar = tmpChar
res+=curNum
print(res)