class Solution:
def reverseWords(self, s: str) -> str:
s_list = s.split()[::-1]
return ' '.join(s_list)
我都用python了,为什么不用split
和join
呢。
def main():
c = int(input())
s = input()
print(s[-c:] + s[:-c])
main()
class Solution:
def getNext(self, s: str) -> None:
j = 0 # 前缀末尾
next = [0] * len(s)
for i in range(1, len(s)): # 后缀末尾
while(j > 0 and s[i] != s[j]):
j = next[j - 1]
if s[i] == s[j]:
j += 1
next[i] = j
return next
def strStr(self, haystack: str, needle: str) -> int:
if len(needle) == 0:
return 0
next = self.getNext(needle)
j = 0
for i in range(len(haystack)):
while j > 0 and haystack[i] != needle[j]:
j = next[j - 1]
if haystack[i] == needle[j]:
j += 1
if j == len(needle):
return i - len(needle) + 1
return -1
KMP算法,这玩意还是有点难度的,看不明白。还是下面的方法牛,实际使用过程中用这个:
class Solution:
def strStr(self, haystack: str, needle: str) -> int:
return haystack.find(needle)