牛客题霸 - 反转字符串题解

反转字符串

https://www.nowcoder.com/practice/c3a6afee325e472386a1c4eb1ef987f3?tpId=117&&tqId=35028&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

题目:反转字符串

Solution_1

如果你知道 reverse() 函数的话,可以偷个懒

AC Code_1
class Solution {
public:
    string solve(string str) {
        reverse(str.begin(),str.end());
        return str;
    }
};
Solution_2

头尾交换,实现反转

AC Code_2
class Solution {
public:
    string solve(string str) {
        int len = str.length();
        for(int i=0;i<len/2;i++){
            swap(str[i],str[len-1-i]);
        }
        return str;
    }
};
Solution_3

利用栈后进先出的特点,将字符串的每个字符都入栈,再逐个出栈,可得到反转的字符串。

AC Code_3
class Solution {
public:
    string solve(string str) {
        stack<char> s;
        for(char x : str){
            s.push(x);
        }
        str="";
        while(!s.empty()){
            str+=s.top();
            s.pop();
        }
        return str;
    }
};
全部评论

相关推荐

13 收藏 评论
分享
牛客网
牛客企业服务