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();
            
        }
    }

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

  • 相关阅读:
    阅读计划博文
    系统设计时所实现的质量属性战术
    关于如何提高系统的可用性和易用性
    jdbc.properties
    JDBCUtil
    软件质量属性的场景描述
    架构漫谈阅读笔记
    软件架构师工作过程
    orm框架中entityframework的 增删改查操作
    事件和委托
  • 原文地址:https://www.cnblogs.com/noaman/p/6915797.html
Copyright © 2011-2022 走看看