算法编程题4-单词逆序问题

给定一个字符串str,请在单词间做逆序调整

举例:

"when I see your smile" 逆序成"smile your see I when”

方案一:

1.实现将字符串局部所有字符逆序的函数f

2.利用f将字符串所有字符逆序

3.找到逆序后的字符串中每一个单词的区域,利用f将每一个单词的区域逆序


实例代码:

#include
#include

using namespace std;

string reverseSentence(string A, int n)
{
	//整体逆序
	reverse(A.begin(), A.end());
	auto pFront = A.begin();
	auto pEnd = pFront;
	//局部逆序
	while (pFront != A.end())
	{
		++pEnd;
		if (pEnd == A.end())
		{
			reverse(pFront, pEnd);
			pFront = pEnd;
			break;
		}
		else if (' ' == *pEnd)
		{
			reverse(pFront, pEnd);
			pFront = pEnd + 1;
		}
	}
	return A;
}

int main()
{
	string str = "I am a student";
	cout << str << endl;
	string tmp = reverseSentence(str,str.length());
	cout << tmp << endl;
	return 0;
}





你可能感兴趣的:(算法编程题)