leetcode腾讯50题344-577

344. 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

你可以假设数组中的所有字符都是ASCII码表中的可打印字符。

class Solution {

public:

    void reverseString(vector<char>& s) {

        int n=s.size();

        for(int i=0;i<n/2;i++)

        {

            swap(s[i],s[n-1-i]);

        }

    }

};

557. 反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。   

class Solution {

public:

    string reverseWords(string s) {

        int n=s.length();

        int st=0,ed=0;

        while(ed<n)

        {   

            while(ed<n&&s[ed]!=' ')

            {

                ed++;

            }

            for(int i=st;i<(st+ed)/2;i++)

            {

                swap(s[i],s[ed-1-i+st]);

            }

            st=ed+1;

            ed+=1;

        }

        return s;

    }

};

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容