leetcode C++ 6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
生活随笔
收集整理的這篇文章主要介紹了
leetcode C++ 6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、思路:
? ? ? 對于Z字型的第i行數據為:let temp1=(row-i-1)*2? ?temp2=i*2
? ? ? i? ? ?i+temp1? ?i+temp1+temp2? 1+temp1*2+temp2? 1+temp1*2+2*temp ...
二、C++代碼:
?
class Solution {
public:string convert(string s, int numRows) {if (numRows < 2)return s;int N = s.size();string res = s;int count = 0;for (int i = 0; i < numRows; i++) {res[count++] = s[i];int nowPos = i;int temp1 = (numRows - i - 1) * 2;int temp2 = 2 * i;while (nowPos < N) {nowPos += temp1;if (nowPos >= N)break;if (i != numRows - 1)res[count++] = s[nowPos];if (i == 0)continue;nowPos += temp2;if (nowPos < N)res[count++] = s[nowPos];}}return res;}
};
?
總結
以上是生活随笔為你收集整理的leetcode C++ 6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode C++ 48. 旋转图
- 下一篇: leetcode C++ 45. 跳跃游