- 1、题目描述:
图片说明

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

-3、 设计思想:
图片说明
详细操作流程看下图:
图片说明

-4、视频讲解链接B站视频讲解

-5、代码:
c++版本:

 class Solution {
public:
    /**
     * 反转字符串
     * @param str string字符串 
     * @return string字符串
     */
    string solve(string str) {
        // write code here
        int len = str.size(); //求出字符的长度
        for(int i = 0;i < len/2;i ++){//然后从中间切开,第一个和最后一个交换
            swap(str[i],str[len - 1 - i]);
        }
        return str;
    }
};

Java版本:

import java.util.*;


public class Solution {
    /**
     * 反转字符串
     * @param str string字符串 
     * @return string字符串
     */
    public String solve (String str) {
        // write code here
        char[] str1 = str.toCharArray(); //先转化为字符串数组
        int len = str.length();//求字符串的长度
        for(int i = 0;i < len/2;i ++){//然后从中间切开,第一个和最后一个交换
            char tmp = str1[i];
            str1[i] = str1[len - 1 - i];
            str1[len-1-i] = tmp;
        }
        return new String(str1);返回一个新的字符串

    }
}

Python版本:

#
# 反转字符串
# @param str string字符串 
# @return string字符串
#
class Solution:
    def solve(self , str ):
        l,r = 0,len(str) - 1# 定义一个双指针
        s = list(str) #将str变为list,然后可以进行字符的交换
        while l < r:#进行字符串的翻转
            c = s[l]
            s[l] = s[r]
            s[r] = c
            l += 1
            r -= 1
        return ''.join(s)

JS版本:

/**
 * 反转字符串
 * @param str string字符串 
 * @return string字符串
 */
function solve( str ) {
    // write code here
        const str1 = str.split('');
        let l = 0,r = str.length-1;//双指针
        while(l < r){
            //字符交换
            let temp = str1[l];
            str1[l] = str1[r];
            str1[r] = temp;
            //交换完一次就进行指针移动
            l ++;
            r --;
        }
        return str1.join('');
}
module.exports = {
    solve : solve
};