zoukankan      html  css  js  c++  java
  • 【2】原串翻转

    题目:

    请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
    给定一个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();
            
        }
    }

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

  • 相关阅读:
    禁止google浏览器强制跳转为https
    遍历打印文件目录结构
    添加忽略文件
    部署git服务器
    Location, History, Screen, Navigator对象
    Window 对象
    回调函数,setTimeout,Promise
    闭包
    this
    函数内部运作机制—上下文
  • 原文地址:https://www.cnblogs.com/noaman/p/6915797.html
Copyright © 2011-2022 走看看