题目: 字符串分隔

  • 热度指数:6139 时间限制:1秒 空间限制:32768K
  • 本题知识点: 字符串

题目描述

•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;

•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
输入例子:
abc
123456789
输出例子:
abc00000
12345678
90000000

在线提交网址:

http://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7?tpId=37&tqId=21227&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking

分析:

根据字符串长度, 分length>8, <8, =8 三种情况即可, 另外还有一种递归的方法可以解决.

已AC代码:

#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std; int main()
{
string str;
while(getline(cin, str))
{
if(str.empty()) return 0;
if(str.length() == 8) cout<<str<<endl;
else if(str.length() < 8 && str.length()>0)
{
cout<<str;
for(int i = 0; i <= 8-str.length()-1; i++) cout<<'0';
cout<<endl;
}
else if(str.length() > 8)
{
int lastlen=str.length() % 8;
int frontlen = str.length()-lastlen;
for(int i = 0; i <= frontlen - 1; i++)
{
if(i==0 || i%8 != 7) cout<<str[i];
if(i%8 == 7)
{
cout<<str[i]<<endl;
continue;
}
}
for(int j = 0; j <= lastlen-1; j++) cout<<str[frontlen+j];
if(lastlen>0)
{
for(int i = 0; i <= 8-lastlen-1; i++)
cout<<'0';
cout<<endl;
}
}
}
return 0;
}

递归解法:

#include <iostream>
#include <string>
using namespace std;
void process(string str) {
if (str == "")
return;
if (str.size() <= 8) {
str.append(8 - str.size(), '0');
cout << str << endl;
return;
}
cout << str.substr(0, 8) << endl;
process(str.substr(8, str.size()));
}
int main() {
string str1, str2;
cin >> str1 >> str2;
process(str1);
process(str2);
return 0;
}

华为oj之字符串分割的更多相关文章

  1. 华为OJ平台——字符串分隔

    题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输 ...

  2. 华为OJ平台——字符串通配符

    题目描述: 在计算机中,通配符一种特殊语法,广泛应用于文件搜索.数据库.正则表达式等领域.现要求各位实现字符串通配符的算法.要求:实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0 ...

  3. 华为OJ:字符串合并处理

    字符串合并处理 按照指定规则对输入的字符串进行处理. 详细描述: 将输入的两个字符串合并. 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序.这里的下标意思是字符在 ...

  4. 华为OJ:字符串加解密

    题目描述 1.对输入的字符串进行加解密,并输出. 2加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该 ...

  5. 华为OJ: 公共字符串计算

    有几个需要注意的地方,这个问题是不是大写和小写之间的区别.这样你就输入字符串大写或小写转换的计算前. 第二个,定要清晰.先将s1从[i]处開始与s2的[j]開始匹配,不相等则j++直到j等于s2.le ...

  6. 华为oj之字符串反转

    题目: 字符串反转 热度指数:4940 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.例如: 输入描述: 输入N ...

  7. 华为oj之字符串最后一个单词的长度

    题目: 字符串最后一个单词的长度 热度指数:9697 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 题目描述 计算字符串最后一个单词的长度,单词以空格隔开. 输入描述: 一行字符串,非 ...

  8. 华为oj 统计字符串不同字符

    #include <stdio.h> #include <string.h> int firstSingle(char *str) { int hash[128]={0}; f ...

  9. 华为OJ:字符串处理

    #include <iostream> #include <stdlib.h> #include <string> #include <sstream> ...

随机推荐

  1. SQL注入绕WAF总结

    0x00 前言 在服务器客户端领域,曾经出现过一款360主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影.从半年前的测试虚拟机里面,翻出了360主机卫士Apache版 ...

  2. 字节跳动19春招研发第一次在线笔试-A卷

    结果:凉. 说明 此博客仅为笔试记录所用,如涉及版权或保密问题,请联系我及时删除. 联系方式:georgehu716@qq.com 1. 找零 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C ...

  3. CodeForces - 777B Game of Credit Cards 贪心

    题目链接: http://codeforces.com/problemset/problem/777/B 题目大意: A, B玩游戏,每人一串数字,数字不大于1000,要求每人从第一位开始报出数字,并 ...

  4. vue插件官方文档,做个记录

    vue的插件,组件都可以按照这种方式添加 官方文档 https://cn.vuejs.org/v2/guide/plugins.html 做个记录用

  5. RSP小组——团队冲刺博客一——(领航)

    RSP小组--团队冲刺博客一--领航 冲刺日期:2018年12月10日 团队目标 经过团队讨论,我们最新确定的α版本所需实现内容如下: 1.实现游戏代码的实现 2.在Android Studio上实现 ...

  6. Linux指令集

    最近在学习Linux虚拟机,下面是我在学习虚拟机的过程中使用过的一些指令,及其作用. pwd-> 列出当前目录路径 ls-> 列出当前目录列表 cd-> 改变目录 mkdir-> ...

  7. Flume+Kafka+Storm+Hbase+HDSF+Poi整合

    Flume+Kafka+Storm+Hbase+HDSF+Poi整合 需求: 针对一个网站,我们需要根据用户的行为记录日志信息,分析对我们有用的数据. 举例:这个网站www.hongten.com(当 ...

  8. 获取标准shell 命令的输出内容

    cmdline.h #include <iostream> #include <mutex> class Cmdline { private: Cmdline() = defa ...

  9. 201771010126 王燕《面向对象程序设计(Java)》第十三周学习总结

    实验十三  图形界面事件处理技术 实验时间 2018-11-22 1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: 事件源 (eventevent eventeventsource s ...

  10. 记一次<iframe>的使用

    将jsp拆分frame框架,因为采用了第一种方式,一直在考虑用jquery异步请求获取数据,总是但不到效果, 终于在js写吐的时候选择了第二种方式. //参考网上的使用,大多是下面这个样子,如果涉及静 ...