Python 은 주어진 문자열 에 대해 모든 하위 시퀀스 가 답장 시퀀스 인지 여 부 를 푸 는 방법 입 니 다.
질문:
문자열 을 지정 하여 모든 하위 시퀀스 를 얻 고 답장 시퀀스 인지 여 부 를 판단 합 니 다.
생각:
문자열 을 옮 겨 다 니 며 자 르 면 됩 니 다.
다음은 구체 적 인 실현 이다.
#!usr/bin/env python
# -*- coding:utf-8 -*-
'''''
__AUthor__:
:
'''
def is_huiwen(one_str_list):
'''''
,
'''
if len(one_str_list)==1:
return True
else:
half=len(one_str_list)/2
if len(one_str_list)%2==0:
first_list=one_str_list[:half]
second_list=one_str_list[half:]
else:
first_list=one_str_list[:half]
second_list=one_str_list[half+1:]
if first_list==second_list[::-1]:
return True
else:
return False
def get_list_all_sub_list(num_list):
'''
, , , : 1
'''
if len(num_list)==1:
return [num_list]
sub_list=get_list_all_sub_list(num_list[:-1])
extra=num_list[-1:]
temp_list=[]
for one in sub_list:
temp_list.append(one+extra)
return sub_list+temp_list
def slice_func(one_str):
'''''
'''
result_list=[]
for i in range(1,len(one_str)):
result_list.append(one_str[:i])
result_list.append(one_str[i:])
result_list+=list(one_str)
result_list.append(one_str)
return list(set(result_list))
def main_func2():
'''''
'''
str_list=['abdc','abba']
for one_str in str_list:
result_list=slice_func(one_str)
print '-----------------------------------------------'
for one in result_list:
if is_huiwen(list(one)):
print one+' '
def main_func1():
'''''
'''
str_list=['abdc','abba']
for one_str in str_list:
one_str_list=list(one_str)
one_all_sub_list=get_list_all_sub_list(one_str_list)
print '------------------------------------------------'
print one_all_sub_list
for one in one_all_sub_list:
if is_huiwen(one):
print ''.join(one)+' '
if __name__ == '__main__':
print " :"
main_func2()
결 과 는 다음 과 같다.Python 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.