Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Methode, um herauszufinden, ob alle Teilsequenzen Palindromsequenzen für eine bestimmte Zeichenfolge sind

Python-Methode, um herauszufinden, ob alle Teilsequenzen Palindromsequenzen für eine bestimmte Zeichenfolge sind

不言
不言Original
2018-04-21 15:19:302060Durchsuche

Dieser Artikel stellt hauptsächlich die Methode von Python vor, um zu bestimmen, ob alle Teilsequenzen für eine bestimmte Zeichenfolge Palindromsequenzen sind. Dabei geht es um die Bedienfähigkeiten von Python im Zusammenhang mit der String-Durchquerung, der Beurteilung und der Operation.

Das Beispiel in diesem Artikel beschreibt Pythons Methode zur Bestimmung, ob alle Teilsequenzen Palindromsequenzen für eine bestimmte Zeichenfolge sind. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

Frage:

Ermitteln Sie anhand einer Zeichenfolge alle Teilsequenzen und bestimmen Sie sie ob Für die palindromische Sequenz

Idee:

einfach die Abschnitte der Zeichenfolge durchlaufen

wie folgt Es handelt sich um eine spezifische Implementierung:

#!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()

Die Ergebnisse sind wie folgt:

Verwandte Empfehlung:

So konvertieren Sie einen Python-String in ein zweidimensionales Array

Das obige ist der detaillierte Inhalt vonPython-Methode, um herauszufinden, ob alle Teilsequenzen Palindromsequenzen für eine bestimmte Zeichenfolge sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn