Heim  >  Artikel  >  Backend-Entwicklung  >  Python implementiert das Lesen von Zeichenfolgen, deren Verteilung in Spalten und die Ausgabe in Zeilen

Python implementiert das Lesen von Zeichenfolgen, deren Verteilung in Spalten und die Ausgabe in Zeilen

不言
不言Original
2018-04-17 11:56:393372Durchsuche

In diesem Artikel wird hauptsächlich die Python-Implementierung zum Lesen von Zeichenfolgen, deren Verteilung in Spalten und deren Ausgabe in Zeilen vorgestellt. Dazu gehören Pythons Fähigkeiten zum Durchlaufen, Bewerten, Berechnen und anderen verwandten Operationen für Zeichenfolgen.

Das Beispiel in diesem Artikel beschreibt die Python-Implementierung zum Lesen von Zeichenfolgen, deren Verteilung nach Spalten und der anschließenden Ausgabe nach Zeilen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Frage:

Geben Sie eine Zeichenfolge und eine Zahl ein, die die Zahl darstellt In wie viele Zeilen es unterteilt ist, muss gemäß der angegebenen Spaltenspeichermethode gespeichert und dann durch Zeilenspleißen ausgelesen werden, z. B.:

Eingabe: TNGDWXAZQSCVBK, 3
Ausgabe: TWQBNDXZSVKGAC

Bei der Zwischenkonvertierung wird folgende Zahl gebildet:

T W Q K
N D X Z S V B
G A C

in eine Matrix. Vielleicht können Sie es klarer sehen:

T 0 W 0 Q 0 B
N D X Z S V K
G 0 A 0 C 0 0

0 wird als Leerzeichen verwendet. Füllen Sie es aus und sehen Sie sich die spezifische Implementierung unten an:


#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:zigzag_pattern
T  W  Q  K
N D X Z S V B
G  A  C
convert("TNGDWXAZQSCVBK", 3) should return "TWQBNDXZSVKGAC".
'''
def convert_test(one_str,num):
  '''''
  '''
  mod=len(one_str)%(num+1)
  if mod==0:
    cols=(len(one_str)/(num+1))*2
  else:
    cols=(len(one_str)/(num+1))*2+1
  rows=num
  #print 'rows, cols', rows, cols
  matrix=[]
  for i in range(rows):
    matrix.append([0]*cols)
  one_str_list=list(one_str)
  for j in range(cols):
    if j%2==0:
      for i in range(rows):
        if len(one_str_list):
          matrix[i][j]=one_str_list.pop(0)
    else:
      matrix[1][j]=one_str_list.pop(0)
  #print matrix
  # for one in matrix:
  #   one_list=[str(onec) for onec in one]
  #   print ' '.join(one_list)
  res=''
  for one_list in matrix:
    one_list=[str(one) for one in one_list]
    res+=''.join(one_list)
  return ''.join(res.split('0'))
if __name__ == '__main__':
  print convert_test("TNGDWXAZQSCVBK", 3)
  print convert_test("PAYPALISHIRING", 2)
  print convert_test("PAYPALISHIRING", 4)


Das Ergebnis lautet wie folgt:

TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
[Fertig in 0,3s]

Verwandte Empfehlungen:

Python implementiert eine Methode zur Lösung von Problemen mit der Klammerzuordnung

Verwendung von Python zur Implementierung von Anmelde- und Registrierungsfunktionen für Webbenutzer

Das obige ist der detaillierte Inhalt vonPython implementiert das Lesen von Zeichenfolgen, deren Verteilung in Spalten und die Ausgabe in Zeilen. 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