题目描述:
小明手中有很多字符串卡片,每个字符串中都包含有多个连续的空格,而且这些卡片在印刷的过程中将字符串的每个子串都打印反了,现在麻烦你帮小明将这些字符串中的子串修正过来,同时为了使卡片美观,压缩其中的连续空格为1个。
输入:输入包含多个测试用例,每个测试用例的第一行是一个正整数 n,1=
对应每个测试用例,请按照要求输出修正过的字符串。
样例输入:3 abc 13 abc efg hij样例输出:
cba cba gfe jih来源:
-
2012年Google校园招聘笔试题目
#include#define MAX 100001 int Delete_Blank (char str[], int n){ int i, j; int flag; int cnt; cnt = 0; i=0; j=0; while (i < n){ str[j] = str[i]; if (str[i] == ' '){ while (str[++i] == ' ') continue; ++j; str[j] = str[i]; } else{ ++i; ++j; } } str[j] = ''; return j; } void Reverse (char str[], int start, int end){ char tmp; while (start < end){ tmp = str[start]; str[start] = str[end]; str[end] = tmp; ++start; --end; } } int main(void){ char str[MAX]; int n; int i; int start, end; while (scanf (%d, &n) != EOF){ while (getchar () != ' ') continue; gets (str); n = Delete_Blank (str, n); for (i=0; i