一、算法描述
给定一个字符串,对于字符串包括多个连续空格的情况,压缩并只保留一个空格,同时以空格隔离的子串逆转。
二、算法思路
其本质是字符串逆转的变体,即在字符串逆转的基础上,还要压缩多余空格,这种情况相比单纯的字符串逆转多了一步判断连续空格的条件
如下代码中,包括单纯的字符串逆转函数,实现比较简单,主要是注意下标的位置
三、算法代码
#include <iostream> #include <string.h> #include <stdio.h> #include <stdlib.h> using namespace std; //字符串逆转 void ReverseWord(char *s,int left,int right) { while(left<right) { char ch=s[left]; s[left++]=s[right]; s[right--]=ch; } } //句子中每个字符串逆转 void ReverseSentence(char *str) { int i=0,j=0; while(str[j]!='