题解 | #反转字符串#

反转字符串

https://www.nowcoder.com/practice/c3a6afee325e472386a1c4eb1ef987f3

知识点:

双指针:双指针。

三种解法:

解法一:定义一个新的字符串,倒序赋值。

解法二:原字符串,交换对应字符。

解法三:直接调用库函数reverse()。

#include <algorithm>

// 解法一:定义一个新的字符串,倒序赋值。

// class Solution {
//   public:
//     /**
//      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
//      *
//      * 反转字符串
//      * @param str string字符串
//      * @return string字符串
//      */
//     string solve(string str) {
//         // write code here

//         string ans = str;
//         int len = str.length();

//         for (int i = 0; i < len; i++) {
//             ans[i] = str[len - 1 - i];
//         }

//         return ans;
//     }
// };

// 解法二:原字符串,交换对应字符
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 反转字符串
     * @param str string字符串
     * @return string字符串
     */
    string solve(string str) {
        // write code here

        int len = str.length();

        for (int i = 0; i < len / 2; i++) {
            swap(str[i], str[len - 1 - i]);
        }

        return str;
    }
};


// 解法三:直接调用库函数reverse()
// class Solution {
//   public:
//     /**
//      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
//      *
//      * 反转字符串
//      * @param str string字符串
//      * @return string字符串
//      */
//     string solve(string str) {
//         // write code here
//         reverse(str.begin(), str.end());
//         return str;
//     }
// };

全部评论

相关推荐

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