程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode之ReverseWorldString,leetcode

LeetCode之ReverseWorldString,leetcode

編輯:C++入門知識

LeetCode之ReverseWorldString,leetcode


題目:將一個英文句子翻轉,比如:the sky is blue 翻轉後變為:blue is sky the

分析:我的實現方法是,利用棧將單詞存儲起來,然後再順序拿出來,單詞進棧還需注意添加空格。

主要代碼:


class Solution {
public:
	void reverseWords(string &s) {
		stack<string> mStack;
		string mString = "";
		bool flag = false;//false 表示遇到空格,true表示正在讀一個單詞
		int mStringLength = s.length();
		for (int i=0;i<mStringLength;++i)
		{
			//獲取一個單詞
			if (s[i] != ' ')
			{
				flag = true;
				mString += s[i];
			}
			//將一個單詞入棧
			if ((s[i] == ' ' || i == mStringLength-1) && flag == true)
			{
                mStack.push(mString);
				flag = false;
				mString = "";
				mStack.push(" ");
			}			
		}
		mStack.pop();//將最後一個空格丟掉
		//將s中的單詞反置
		s.clear();
		while(!mStack.empty())
		{
			s.append(mStack.top());
			//s += mStack.top();
			mStack.pop();
		}
	}
};

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved