华为机试——字符串分隔
2017-07-22 18:13
471 查看
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
输入abc 123456789
输出
abc00000 12345678 90000000
思路:分两种情况,s的长度大于8和小于等于8,大于8先取前8个,放入res,s更新,len更新;小于等于8的话,尾部加0,放入res,具体见注释~
代码:
#include <iostream> #include <string> #include <vector> using namespace std; void output(string s){ vector<string> res;//保存结果 int len = s.length(); string zero="0000000";//用来尾部加0,最多加7个0 while (1){ if (len <= 8){//如果长度小于等于8 string tmp1(zero, 0, 8-len);//尾部要加8-len个0,通过tmp1(string 初始化) s += tmp1;//0加到s后面 res.push_back(s); break;//结束循环 } string tmp2(s, 0, 8);//如果长度大于8,通过s2取出s的前8个 res.push_back(tmp2); string tmp3(s, 8, len - 8); s = tmp3;//更新s和len值 len = s.length(); } for (vector<string>::iterator iter = res.begin(); iter != res.end(); ++iter){//输出结果 cout << *iter << endl; } } int main(){ string s1, s2; cin >> s1;//所谓的连续输入 cin >> s2; output(s1); output(s2); return 0; }
结果: 运行时间: 2 ms 占用内存:220K 状态:答案正确
相关文章推荐
- Java - 华为机试训练 - 字符串分隔
- 牛客网–华为机试在线训练4:字符串分隔
- 牛客网几道编程题(二)之华为机试在线训练:计算字符个数、字符串最后一个单词的长度、分隔字符串
- 华为机试----字符串分隔
- 华为机试 字符串分隔
- 【华为机试】字符串分隔
- 【华为机试】字符串分隔
- Java-------华为机试-------字符串分隔
- 华为机试:将字符串里第一次出现的字符输出,重复出现的不显示
- 华为校招2016.09机试 第1题: 字符串按指定长度重新分割
- 华为机试—整数数组排序(字符串输入输出)
- 【华为机试】删除字符串中出现次数最少的字符
- 华为在线训练之字符串分隔
- 华为机试:查找字符串
- 华为机试在线训练-牛客网(18)字符串合并处理
- 华为机试:给出一个字符串形式表达的二叉树,求出指定节点深度。
- 华为机试——整型到字符串的转换
- 华为机试:将字符串里第一次出现的字符输出,重复出现的不显示
- 牛客网华为机试在线训练字符串最后一个单词的长度
- 华为OJ平台——字符串分隔