코딩테스트/LeetCode

[LeetCode] 151. Reverse Words in a String

ShovelingLife 2024. 7. 2. 12:24

내가 작성한 코드

reverse(s.begin(), s.end());
string str, ans;

for (auto iter = s.begin(); iter != s.end(); iter++)
{
	char ch = *iter;

	if (ch == ' ')
	{
		if (str == "")
			continue;

		reverse(str.begin(), str.end());
		ans += str + ' ';
		str = "";
	}
	else
		str += ch;
}
reverse(str.begin(), str.end());

if (str == "")
	ans.pop_back();

return ans + str;

 

인터넷에서 퍼온 코드

stringstream st(s);
string word;
vector<string> ans;

while (st >> word)
	ans.emplace_back(word);

// Reverse the vector
std::reverse(ans.begin(), ans.end());

string result = "";
for (int i = 0; i < ans.size() - 1; ++i)
	result += ans[i] + " ";

return result + ans[ans.size() - 1];