谷歌2012面试题-子串逆序打印
来源:互联网 发布:垃圾回收器 java 编辑:程序博客网 时间:2024/04/29 12:03
- 题目描述:
小明手中有很多字符串卡片,每个字符串中都包含有多个连续的空格,而且这些卡片在印刷的过程中将字符串的每个子串都打印反了,现在麻烦你帮小明将这些字符串中的子串修正过来,同时为了使卡片美观,压缩其中的连续空格为1个。
- 输入:
输入包含多个测试用例,每个测试用例的第一行是一个正整数 n,1=<n<=100000,代表卡片上字符串的长度。第二行输入长度为n的字符串(字符串仅包含小写字母和空格)。当n为0时,代表输入结束。
- 输出:
对应每个测试用例,请按照要求输出修正过的字符串。
- 样例输入:
3abc13abc efg hij
- 样例输出:
cbacba gfe jih
分析:思想很简单,使用sstream流就可以对字符串进行分割,但是考虑的情况比较恶心,尤其是第一条。
1.首字符如果是1个以上的空格,则需要输出空格一次
2.尾部如果没有空格,则不能输出空格。
注意cin是不吃空格和回车的,所以读取行时莫漏掉getchar()一下。
#include<iostream>#include<stdio.h>#include<string>#include<sstream>using namespace std; int main(){ string word; int n,i; char str[100001]; while(cin>>n && n>0){ getchar(); gets(str); string lineText(str); istringstream is(lineText); is>>word; if(lineText[0]==' ') cout<<' '; for(i=word.size()-1;i>=0; --i){ cout<<word[i]; } while(is>>word){ cout<<' '; for(i=word.size()-1;i>=0; --i){ cout<<word[i]; } } if(lineText[n-1]==' ') cout<<' '; cout<<endl; } return 0;}
0 0
- 谷歌2012面试题-子串逆序打印
- 逆序打印字符串(面试题)
- 经典面试题之逆序打印单链表
- 1525子串逆序打印
- 【面试题】打印最长升序子序列
- 【面试题】剑指Offer-5-逆序打印单链表
- 【面试题】剑指offer05--逆序打印链表
- 题目1525:子串逆序打印
- 题目1525:子串逆序打印
- 面试题 - 字符串逆序
- 面试题,删除子串
- 每日微软面试题——day 6(打印所有对称子串)
- 微软面试题day 6(打印所有对称子串)
- 九度OJ 1525 子串逆序打印 -- 2012年Google校园招聘笔试题目
- 题目1525:子串逆序打印-九度
- 九度oj 题目1525:子串逆序打印
- 九度OJ—题目1525:子串逆序打印
- 九度OJ 1525 子串逆序打印
- [HDU1812]置换群 Polya定理 等价涂色问题详解
- [水]ZOJ1666
- C++中引用(&)的用法和应用实例
- HDU 4923 - Room and Moor (贪心)
- 数据库的行式存储,列式存储
- 谷歌2012面试题-子串逆序打印
- hdu 2952 Counting Sheep(简单dfs)
- poj 2349 最小生成树
- 陈老师的多校联合20180808 map映射字符串
- 矩阵十题【六】 poj3070 Fibonacci
- hdu 3869 polya计数
- SIFT特征提取分析
- JVM规范学习:invokevirtual
- HDU 2852 KiKi's K-Number(线段树+二分)