原串翻转

Posted noaman_wgs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原串翻转相关的知识,希望对你有一定的参考价值。

题目:

请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
测试样例:
"This is nowcoder"
返回:"redocwon si sihT"

代码实现:

方法一:双指针思想,前后指针所指向的字符交换,直至两指针相遇,交换完毕。

import java.util.*;

public class Reverse {
    public String reverseString(String iniString) {
       if (iniString == null || iniString.length() <= 1){
           return iniString;
       }
       
        int index1 = 0;
        int index2 = iniString.length() - 1;
        char[] arrs = iniString.toCharArray();
        
        while(index1 < index2){
            char temp = arrs[index1];  
            arrs[index1] = arrs[index2];
            arrs[index2] = temp;
            
            index1++;
            index2--;
        }
        
        return new String(arrs);
        
    }
}

方法二:反转即从字符串最后一个字符输出即可。

import java.util.*;

public class Reverse {
    public String reverseString(String iniString) {
       if (iniString == null || iniString.length() <= 1){
           return iniString;
       }
       
        StringBuilder sb = new StringBuilder(5000);
        for (int i = iniString.length() - 1; i >= 0; i--){
            sb.append(iniString.charAt(i));
        }
        
        return sb.toString();
        
    }
}

 

 

 

 

 

 

 

方法一:双指针思想,前后指针所指向的字符交换,直至两指针相遇,交换完毕。

以上是关于原串翻转的主要内容,如果未能解决你的问题,请参考以下文章

原串翻转

原串翻转

1.2字符串-原串翻转

原串翻转

编程题及解题思路(2,原串翻转问题)

片段(Java) | 机试题+算法思路+考点+代码解析 2023