Maison >développement back-end >Tutoriel Python >Python implémente la lecture des chaînes, leur distribution en colonnes et leur affichage en lignes

Python implémente la lecture des chaînes, leur distribution en colonnes et leur affichage en lignes

不言
不言original
2018-04-17 11:56:393416parcourir

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

Utilisation de Python pour implémenter les fonctions de connexion et d'enregistrement des utilisateurs Web

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn