未验证 提交 a8fbc0f8 编写于 作者: L liangym 提交者: GitHub

Delete ssstr.py

上级 29f954fd
#coding=utf-8
import time
def find_index(find_str: str, key: str) -> list:
"""find duicheng str based on a special middle index
Args:
find_str (str): orignal str
index (int): middle index
Returns:
str: dst str
"""
index_list = []
count = find_str.count(key)
if count == 0:
return index_list
index = 0
for i in range(count - 1):
index = find_str.find(key, index + 1)
index_list.append(index)
index_list.sort(reverse=True)
return index_list
def find_max(input_str: str) -> str:
max_str = ""
if len(input_str) == 1:
return input_str
for i in range(len(input_str)):
temp_str = ""
find_str = input_str[i:]
if(len(find_str) < len(max_str)):
return max_str
key = input_str[i]
index_list = find_index(find_str, key)
if index_list != []:
for index in index_list:
left_index = 1
right_index = index - 1
if right_index == 0 or left_index == right_index: # aa or aba
temp_str = find_str[:index+1]
else: #example: index % 2 == 0: abcba, index % 2 == 1: abccba
while((index % 2 == 0 and left_index != right_index) or (index % 2 == 1 and left_index != right_index - 1)):
if find_str[left_index] == find_str[right_index]:
left_index += 1
right_index -= 1
continue
else:
break
if((index % 2 == 0 and left_index == right_index) or (index % 2 == 1 and left_index == right_index - 1 and find_str[left_index] == find_str[right_index])):
temp_str = find_str[:index+1]
if len(temp_str) > len(max_str):
max_str = temp_str
return max_str
start_time = time.time()
str = "abcdabaaaaacaaaa"
print(find_max(str))
print(time.time() - start_time)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册