python对指定字符串寻找回文子序列的最小划分

思想同上一篇博文,具体实现如下:

#!usr/bin/env python
#encoding: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 find_min_cut(one_str):
    '''
    寻找最小划分下标
    '''
    for i in range(1, len(one_str)):
        tmp_str=one_str[:i]
        if is_huiwen(list(tmp_str)):
            print i 
            break 


if __name__ == '__main__':
    one_str='aabx'
    find_min_cut(one_str)

结果如下:

1
[Finished in 0.3s]


你可能感兴趣的:(面试工作,编程技术)