一个长度不大于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)