Maison > Article > développement back-end > Python implémente la lecture des chaînes, leur distribution en colonnes et leur affichage en lignes
Cet article présente principalement l'implémentation par Python de la lecture de chaînes et de leur distribution en colonnes, puis de leur affichage en lignes. Cela implique les compétences opérationnelles de Python pour le parcours de chaînes, le jugement, l'opération et d'autres opérations connexes.
L'exemple de cet article décrit l'implémentation Python de la lecture de chaînes et de leur distribution par colonnes, puis de leur sortie par lignes. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Question :
Entrez une chaîne et un nombre, le nombre représente en combien de lignes il est divisé, doivent être stockées selon la méthode de stockage de colonnes donnée, puis lues par épissage de lignes, telles que :
Entrée : TNGDWXAZQSCVBK, 3
Sortie : TWQBNDXZSVKGAC
La figure suivante sera formée lors de la conversion intermédiaire :
T W Q K
N D X Z S V B
G A C
dans une matrice Peut-être pouvez-vous le voir plus clairement :
T 0 W 0 Q 0 B
N D X Z S V K
G 0 A 0 C 0 0
0 est utilisé comme espace vide. Remplissez-le et regardez l'implémentation spécifique ci-dessous :
#!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)
Le résultat est la suivante :
TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
[Terminé en 0,3 s]
Recommandations associées :
Python implémente une méthode pour résoudre les problèmes de correspondance entre parenthèses
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!