题目: 字符串分隔

  • 热度指数: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. linux安装vsftp服务

    如果管理一个网站,需要经常上传下载一些文件,通过scp传输吗?当然不是,太麻烦了,而且首先你需要本机是linux的系统,这时我们需要一个工具,叫ftp. ftp是文件传输协议,通过它可以很方便上传下载 ...

  2. input里面的submit鼠标按钮属性cursor

    属性cursor 属性值: pointer  小手 move  移动 help 帮助 wait 等待

  3. ftp无法上传问题

    1.背景 ftp服务端和客户端一直未做任何改动,无法上传属于突发状态,除此客户端外其他客户端上传正常 客户端(SunOS系统)可以正常连接ftp的xxx21端口,但是传输数据(文件)时无法正常传输 上 ...

  4. python 日常错误整理

    1.NameError: name 'raw_input' is not defined 问题原因:python 3 中raw_input已经被input 替代

  5. Win10 安装Oracle11g2、配置PL/SQL Developer11环境

    Oracle11g2的下载地址(下载以下两个压缩包,解压后得到两个oracle目录,放到一起就得到完整的安装文件了): 1.Oracle11g2: oracle-part-1 oracle-part- ...

  6. Html 常用标签及属性

    <html>…</html>      定义 HTML 文档<head>…</head>   文档的信息<meta>             ...

  7. Elasticsearch 滚动重启 必读

    关键词:elasticsearch , es , 滚动重启 , 禁止分片 由于之前es GC没有怎么调优,结果今天被大量scroll查询查挂了,GC 卡死了.然后为了先恢复给业务使用,也没什么其他办法 ...

  8. React修改state(非redux)中数组和对象里边的某一个属性的值

    在使用React时,会经常需要处理state里边设置的初始值以达到我们的实际需求,比如从接口获取到列表数据后要赋值给定义的列表初始值,然后数据驱动view视图进而呈现在我们眼前,这种最简单的赋值方式实 ...

  9. 让数字变化炫酷起来,数字滚动Text组件[Unity]

    让数字滚动起来 上周我的策划又提了样需求,当玩家评分发生变动时,屏幕出现人物评分浮层UI,播放评分数字滚动动画.这类数字滚动需求非常常见,我就按一般思路,将startvalue与endvalue每隔一 ...

  10. Python函数式编程之lambda表达式

    一:匿名函数的定义 lambda parameter_list: expression 二:三元表达式 条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果 三:map map(f ...