【题目】汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
【思路】左移多少位,则是多少位到到右边
【代码】
class Solution:
def LeftRotateString(self, s, n):
# write code here
k = len(s)
if k<=0:
return s
m = n%k
return s[m:]+s[:m]
【题目】
【代码】
class Solution:
def ReverseSentence(self, s):
# write code here
if not s:
return s
s_split = s.split(" ")[::-1]
return " ".join(s_split)
【顺子】模拟题
【代码】
class Solution:
def IsContinuous(self, numbers):
# write code here
n = len(numbers)
if n<5 or n>5:
return False
dict_num = {}
count = 0
for i in range(n):
if numbers[i]==0:
count+=1
continue
elif numbers[i] in dict_num.keys():
return False#重复则不可能构成顺子
else:
dict_num[numbers[i]] = 1
return True if max(dict_num.keys())-min(dict_num.keys())<=4 else False
网友评论