方式一:
import time
def str_reverse1(str_info):
flag = None
if "?" in str_info:
resp1, resp2 = str_info.split("?")
flag = "?"
elif "," in str_info:
resp1, resp2 = str_info.split(",")
flag = ","
elif "." in str_info:
resp1, resp2 = str_info.split(".")
flag = "."
elif "!" in str_info:
resp1, resp2 = str_info.split("!")
flag = "!"
elif "&" in str_info:
resp1, resp2 = str_info.split("&")
flag = "&"
else:
pass
if flag:
result = ' '.join(resp1.split()[::-1]) + flag + ' '.join(resp2.split()[::-1])
return result
else:
raise Exception("字符串不符合规则")
str_info = "I love China?China is my home"
start = time.time()
resp = str_reverse1(str_info)
print("运行时间:%.2f秒" % (time.time()-start))
print(resp)
方式二:
import re
import time
def str_reverse2(str_info):
match_result = re.findall(r"\W", str_info)
def not_empty(s):
return s and s.strip()
non_str_list = list(filter(not_empty, match_result))
if not non_str_list:
raise Exception("字符串不符合规则")
non_str = non_str_list[0]
resp1, resp2 = str_info.split(non_str)
str1 = reversed(resp1.split())
str2 = reversed(resp2.split())
result = ' '.join(str1) + non_str + ' '.join(str2)
return result
str_info = "I love China?China is my home"
start = time.time()
resp = str_reverse2(str_info)
print("运行时间:%.2f秒" % (time.time()-start))
print(resp)