您的位置:首页 > 大数据 > 人工智能

Submission Details

2016-02-23 13:14 417 查看
我是把它看作是“W”型字,并且“V”作为一个处理循环

提交后错了两次:第一次内存预设不够大100变为1000

第二次没考虑边界情况,当输出行为1时,可以不用处理直接输出

class Solution {
public:
string convert(string s, int numRows) {
char ischar[1000][1000]={0};
int cer_i=0;
int col=0,i=0;
string change;
if(numRows==1) return s;
while(i<s.length())
{

while(cer_i<numRows && i<s.length())
ischar[cer_i++][col]=s[i++];
cer_i=cer_i-2;
while(cer_i>0 && i<s.length())
ischar[cer_i--][++col]=s[i++];
col++;
if(i>=s.length()) break;
}
for(int m=0;m<numRows;m++)
for(int n=0;n<col;n++)
{
if(ischar[m]
!=0) change=change+ischar[m]
;
}
return change;
}
};


124ms,是比较慢的

优化的话:可以把二维字符数组改为一维字符串数组,这样最后不用在循环重新获取一边。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: