i3geek.com
闫庚哲的个人博客

1009 子串逆序打印【2012年Google校园招聘笔试题目】

进入OJ

 Description

小明手中有很多字符串卡片,每个字符串中都包含有多个连续的空格,而且这些卡片在印刷的过程中将字符串的每个子串都打印反了,现在麻烦你帮小明将这些字符串中的子串修正过来,同时为了使卡片美观,压缩其中的连续空格为1个。

Input

输入包含多个测试用例,每个测试用例的第一行是一个正整数 n(1<=n<=100000)代表卡片上字符串的长度。第二行输入长度为n的字符串(字符串仅包含小写字母和空格)。当n为0时,代表输入结束。

Output

对应每个测试用例,请按照要求输出修正过的字符串。

Sample Input

3
abc
13
abc efg hij

Sample Output

cba
cba gfe jih

Source

2012年Google校园招聘笔试题目

Code

#include<stdio.h>
void fun(char *p,int n)
{
    for(int i=0;i<n;i++)
    {
        printf("%c",p[n-1-i]);
    }
}
int main()
{
    int n;
    char p[100010];
    while(scanf("%d", &n)!=EOF && n > 0)
    {
        gets(p);
 
        int sign=0,i=0,last=0;
        for(int m=0 ; m<n;m++,i++)
        {
            scanf("%c",&p[i]);
            if(p[i] == ' ' && sign ==0)
            {
                //执行对调
                fun(&p[last],i-last);
                printf(" ");
                sign ++;
            }
            else if(p[i]==' ' && sign !=0)
            {
                i--;
            }
            else if(p[i]!=' ' && sign != 0)
            {
                sign = 0;
                last = i;
            }
        }
        if(p[i-1]!=' ')
        fun(&p[last],i-last);
        printf("\n");
    }
    return 0;
}

 

赞(0)
未经允许不得转载:爱上极客 » 1009 子串逆序打印【2012年Google校园招聘笔试题目】
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址