
找规律的题目了,规律从下面的数组矩阵中可以很容易找出来
把字符串的下标按题目要求排列,发现第一行是等差数列
以后每加一行在上一行的数字+1就行
然后观察斜边
我们每次可以确认每一竖的数字,斜边的数字是竖边的数字加上某个差值
对于第一个斜边的数字
5=1+4
4=2+2

#include <cstdio>
#include <iostream>
using namespace std;
class Solution {
public:
string convert(string s, int numRows) {
if(numRows>=s.size()||numRows==1)
return s;
string coString;
for (int i = 0; i < numRows; ++i) {//往下
int x = 0;//横向前进
while (2 * (numRows - 1) * x + i < s.size()) {
coString.push_back(s[2 * (numRows - 1) * x + i]);
if (i != 0 && i != numRows - 1&&2 * (numRows - 1) * x + i + 2 * (numRows - 1) - 2 * i<s.size()) {
//判断条件:非第一行和最后一行,下标不越界。
coString.push_back(s[2 * (numRows - 1) * x + i + 2 * (numRows - 1) - 2 * i]);
}
x++;
}
}
return coString;
}
};
int main() {
Solution sf;
string str = "ABCED";
cout << sf.convert(str, 4);
return 0;
}
字符串转换规律解析
本文介绍了一种字符串转换的规律,并通过编程实现了解决方案。利用等差数列和特定的行间递增规律,实现了字符串的重新排列。适用于需要进行特殊格式化处理的场景。
3558

被折叠的 条评论
为什么被折叠?



