1.输入一个字符串,输出个数最多的字符以及个数。若有存在多个个数最多的字符,输出字符串中第一个出现的。
inputStr=input()
countList=[0]*26
for i in inputStr:
countList[int(ord(i)-ord('a'))]=countList[int(ord(i)-ord('a'))]+1
maxCount=max(countList)
for i in inputStr:
if countList[int(ord(i)-ord('a'))]==maxCount:
print(i)
break
print(maxCount)
2.输入n个字符串,每个字符串表示一个数据容量(30M,2G,1T),从小到大输出字符串。
import operator
n=int(input())
inputList=[]
for i in range(0,n):
curInput=input()
curNum=float(curInput[:len(curInput)-1])
curChar=curInput[len(curInput)-1]
if curChar=='M':
inputList.append([curNum/1000,curInput])
elif curChar=='T':
inputList.append([curNum*1000,curInput])
else:
inputList.append([curNum,curInput])
inputList.sort(key=operator.itemgetter(0))
for i in inputList:
print(i[1])
3.找宝藏的题目。输入(2,2),6,4。分别表示初始点,方向,步数。再输入一个二维9*9矩阵,判断在规定步数内是否能找到宝藏。
def _foo(x,y,d,n,eurekaX,eurekaY,mapArray):
global keepD
if keepD!=0:
n=n-1
if d==6:
x=x+1
elif d==4:
x=x-1
elif d==2:
y=y+1
elif d==8:
y=y-1
if mapArray[y][x]==1:
n=n-3
elif mapArray[y][x]==5:
keepD=3
elif mapArray[y][x]==9:
x=eurekaX
y=eurekaY
keepD=keepD-1
return x,y,d,n
n=n-1
if d==6:
x=x+1
elif d==4:
x=x-1
elif d==2:
y=y+1
elif d==8:
y=y-1
if mapArray[y][x] in [6,4,2,8]:
d=mapArray[y][x]
else:
if mapArray[y][x]==1:
d=d
n=n-3
elif mapArray[y][x]==5:
d=d
keepD=2
elif mapArray[y][x]==9:
x=eurekaX
y=eurekaY
else:
d=d
return x,y,d,n
inputStr=input().split(',')
[x,y,d,n]=[int(inputStr[0][1:]),int(inputStr[1][:len(inputStr[1])-1]),int(inputStr[2]),int(inputStr[3])]
mapArray=[]
eurekaX=-1
eurekaY=-1
keepD=0
for i in range(0,9):
mapArray.append([int(x) for x in input().split(',')])
if 9 in mapArray[-1]:
eurekaX=i
eurekaY=mapArray[-1].index(9)
flags=-1
while n>0:
x,y,d,n=_foo(x,y,d,n,eurekaX,eurekaY,mapArray)
if (x==eurekaX)&(y==eurekaY):
flags=1
break
if (x>9)|(x<0)|(y<0)|(y>9):
flags=-1
break;
if (n<=0)&((x!=eurekaX)|(y!=eurekaY))&(flags!=1):
flags=0
if flags==-1:
print('roadlessness')
elif flags==0:
print('nothing')
else:
print('eureka')