Transformation en zigzag de chaîne leetcode 6

Transformation en zigzag de sujet

Organisez une chaîne donnée s dans un motif en zigzag de haut en bas et de gauche à droite en fonction du nombre donné de lignes numRows.
Par exemple, lorsque la chaîne d'entrée est "PAYPALISHIRING" et que le nombre de lignes est 3, la disposition est la suivante:

PAHN
APLSIIG
YIR

Après cela, votre sortie doit être lue ligne par ligne de gauche à droite pour produire une nouvelle chaîne, telle que "PAHNAPLSIIGYIR".
Veuillez implémenter cette fonction qui convertit une chaîne en un nombre spécifié de lignes:
string convert (string s, int numRows);
Exemple 1:

Entrée: s = "PAYPALISHIRING", numRows = 3
Sortie: "PAHNAPLSIIGYIR"

Exemple 2:

Entrée: s = "PAYPALISHIRING", numRows = 4
Sortie: "PINALSIGYAHRPI"
Explication:
PIN
ALSIG
YAHR
PI

Exemple 3:

Entrée: s = "A", numRows = 1
Sortie: "A"

rapide:

1 <= s.length <= 1000
s 由英文字母(小写和大写)、',' 和 '.' 组成
1 <= numRows <= 1000

Source:
Lien LeetCode : https://leetcode-cn.com/problems/zigzag-conversion

réponse en langage c

Le code fait référence à la pratique du leetcode

char * convert(char * s, int numRows){
    
    
    int len=strlen(s);
    int i;
    int j;
    int k=0;
    char*a=(char*)malloc(sizeof(char) * (len + 1));
    if(numRows==1)return s;
    //b代表循环体长度
    int b=2*numRows-2;
    for(i=0;i<numRows;i++)
        for(j=0;j<len;j++){
    
    
            if(j%b==i||j%b==b-i)
                {
    
    a[k]=s[j];
                k++;
                }
        }
        //这一行必须由,否则报错.
        a[k]='\0';
    return a;
}

Idées:

Au début, j'ai toujours voulu utiliser le reste pour le faire, mais l'exemple que j'ai écrit est le suivant. Je n'ai pas trouvé la règle pour la trouver. Après avoir regardé les grands ci-dessus, j'ai trouvé que je devais commencer à partir de 0 pour le reste, donc l'exemple commence à 0. Commencez à écrire, il est très facile de trouver le motif, puis bouclez chaque ligne et enregistrez-la.
1 7
2 68
3 5 9
4 10

Je suppose que tu aimes

Origine blog.csdn.net/mogbox/article/details/112818739
conseillé
Classement