LeeteCode 6字串Z型變換

2021-10-22 18:28:55 字數 1372 閱讀 5978

用最原始的方法

1.先把字串轉換成n行2維陣列,按照規律存入二維陣列

2.然後對二維陣列 遍歷,存到目標字串

3:注意素組越界訪問和邊界值的設定

這個方法比較笨。執行的效率不高

#define max_size 1000

char**

converttomatrix

(char

* s,

int numrows)

int len =

strlen

(s);

int numcols =

(len / numrows ==0)

?1:(numrows * len / numrows)

;for

(int i =

0; i < numrows; i++)}

int count =0;

for(

int col =

0; col < numcols; col++)}

else}}

}return strmatrix;

}char

*convert

(char

* s,

int numrows)

strmatrix =

converttomatrix

(s, numrows)

;for

(int i =

0; i < numrows; i++

)//printf_s("%c", strmatrix[i][j]);

}//printf_s("\n");

} res[count]

='\0'

;//convert matrix to string again.

return res;

}更加優化的演算法是找規律,找出字串下表的規律。

第一行比肩容易找 2n-

2但是對角線線上的值規律不一樣: 對角線上 為2n-

2= n-

iint len =

strlen

(s);

if(numrows <=1)

return s;

char

*t =

(char*)

malloc

(sizeof

(char)*

(len +1)

);int numsize =0;

int n =

2* numrows -2;

for(

int i =

0; i < numrows; i++)}

} t[numsize]

='\0'

;return t;

字串Z型輸出

這道題目是字串處理的題目。輸入乙個字串和乙個數字,將字串填入倒z形輸入字串,然後按照列讀取字元,得到乙個新的字元,輸出這個字元。例如 字串 paypalishiring 3pa hnap lsii gyir 得到的新字元是 pahnaplsiigyir 這題只是簡單的字串處理。首先,我們可以對z形字...

18 字串 char型字串

1 什麼是字串?字串是以空字元 0 結尾的字元陣列。空字元的assii碼為 0,空格的ascii碼為32 2 0的作用 0 是乙個空字元標誌,它的assii碼為0,c 有好多處理字串的函式,都以 0 為結束標記。也就是以空字元為結束標記,比如cin,cout。它們都以空字元為結束標記,他們在遇到空字...

6 字串函式

strcpy函式char strcpy char dest,const char src 功能 把src所指向的字串覆蓋複製到dest。返回值 dest指向的字串。注意 字串src的長度不能超過dest,否則會溢位。strncpy函式char strncpy char dest,const char...