字符串拆分
从字符串中去非空字符,将其放入到一个二维数组中
1. 如果该字符不为空则将字符在当前加入当前列,行数++
2. 如果当前字符为空,更换列,行数置为1,将所有字符取出后,再按行进行拼接
拼接:
按行组成字符串,然后从字符串后面逐个去除空格,将最后剩余的非空字符串,加入到结果集中
class Solution {
public:
vector<string> printVertically(string s) {
vector<vector<char>> p(200,vector<char>(200,' '));
int j = 0;
int k = 0;
int max_val=0;
for(int i=0;i<s.size();i++){
if(s[i]==' '){
j=0;
k++;
continue;
}
p[j][k] = s[i];
j++;
max_val = max(max_val,j);
}
vector<string> ans;
for(int z=0;z<max_val;z++){
string res="";
for(int i=0;i<p[z].size();i++){
if(i<=k){
cout<<p[z][i]<<" ";
res+=p[z][i];
}
}
if(res!=""){
for(int i=res.size()-1;i>=0;i--){
if(res[i]==' '){
res.pop_back();
}else{
break;
}
}
ans.push_back(res);
}
}
return ans;
}
};