[华为机试练习题]3.分解字符串

时间:2023-02-23 19:52:53

题目

按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”

代码

/*-------------------------------------
* 日期:2015-06-18
* 作者:SJF0115
* 来源:华为机试题
* 题目: 分解字符串
* 博客:
------------------------------------*/

#include <iostream>
#include <vector>
using namespace std;

vector<string> ResolveString(vector<string> vec,int n){
int size = vec.size();
vector<string> result;
if(size == 0 || n <= 0){
return result;
}//if
string str;
int len;
for(int i = 0;i < size;++i){
str = vec[i];
len = str.size();
// 补齐0
for(int j = 0;j < (n - len % n);++j){
str += "0";
}//for
// 分解
int index = 0;
while(index < len){
result.push_back(str.substr(index,n));
index += n;
}//while
}//for
return result;
}

int main(){
int m = 2,n = 8;
vector<string> vec = {"abc","123456789"};
vector<string> result = ResolveString(vec,n);
for(int i = 0;i < result.size();++i){
cout<<result[i]<<endl;
}//for
return 0;
}