zoukankan      html  css  js  c++  java
  • [LeetCode]翻转字符串里的单词

    题目

     

    代码 

    class Solution {
    public:
    	void reverseWords(string &s) {
    		if (s.empty()) return;
            
            //-----判断是否不包含单词,全是空格
    		bool isSpace = true;
    		for (auto i : s)
    		{
    			if (i != ' ')
    				isSpace = false;
    		}
    		if (isSpace)
    		{
    			s = "";
    			return;
    		}
    
            
            //-----移除字符串头和尾的空格
    		int startPos = s.find_first_not_of(' ');
    		int endPos = s.find_last_not_of(' ');
    		if (startPos == string::npos || endPos == string::npos)
    			return;
    		s = s.substr(startPos, endPos - startPos+1);
       
            
            //-----去除字符串中多余的空格
    		int restSpace = 0;
    		int pre = 1, end = 1;
    		while (end < s.size())
    		{
    			if (s[end] == ' '&&s[end - 1] == ' ')
    			{
    				end++;
    				restSpace++;
    			}
    			else
    			{
    				s[pre] = s[end];
    				pre++;
    				end++;
    			}
    		}
    		s.resize(s.size() - restSpace);
            
            
            //-----将字符串进行反转
    		reverse(s.begin(), s.end());
    		for (int i = 0, j = 0; j <= s.size(); j++)
    		{
    			if (j == s.size() || s[j] == ' ')
    			{
    				reverse(s.begin() + i, s.begin() + j);
    				i = j + 1;
    			}
    
    		}
    
    	}
    };
  • 相关阅读:
    Node.js中流程控制
    设计模式六大原则(转)
    Python中装饰器(转)
    cocos2d-js反射
    With as
    Python中sort与sorted函数
    cocos+kbe问题记录
    Python字符串
    vue判断Object对象是否包含每个键
    vue跳转其他页面并传参
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053572.html
Copyright © 2011-2022 走看看