牛客网编程高频题26——NC103反转字符串

目录

反转字符串

描述

示例1

方法一:栈

方法二:倒叙赋值

方法三:交换赋值


反转字符串

描述

写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

示例1

输入:

"abcd"

返回值:

"dcba"

方法一:栈

利用栈先进后出的特性进行反转

import java.util.*;

public class Solution {
    public String solve (String str) {
        // write code here
        Stack<Character> stack=new Stack();
        StringBuilder res=new StringBuilder();

        for (int i = 0; i < str.length(); i++) {
            stack.push(str.charAt(i));
        }

        while(!stack.isEmpty()){
            res.append(stack.pop());
        }
        return res.toString();
    }
}

该方法时间消耗较大,不建议采用, 

方法二:倒叙赋值

新建一个同样大小的字符串res,然后将目标字符串倒叙赋值到结果字符串中

import java.util.*;

public class Solution {
    public String solve (String str) {
        // write code here
        char[] res=str.toCharArray();
        int len=str.length();
        for (int i = 0; i < len; i++) {
            res[i]=str.charAt(len-1-i);
        }
        return new String(res);
    }
}

方法三:交换赋值

我们也可以不用创建新的字符串,在原字符串上进行交换,将第一个字符和最后一个字符交换位置,以此类推

import java.util.*;

public class Solution {
    public String solve (String str) {
        // write code here
        char[] res=str.toCharArray();
        int len=str.length();
        char temp;
        for (int i = 0; i < len/2; i++) {
            temp=res[i];
            res[i]=res[len-1-i];
            res[len-1-i]=temp;
        }
        return new String(res);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_39478524/article/details/117467534
今日推荐