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

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

  • 相关阅读:
    VS Code中编写C
    Latex
    JAVA学习-----容器和数据结构
    Markdown2最最基本操作说明(未完待续)
    [lua] table.sort(_table, comp)使用要点
    [coco2d]pageView:addPage时,page无法对齐
    [cocos2d]修改富文本文本和高度
    [cocos2d]格式化获取当前layer的控件名
    [c++]牛客刷题记录2.18
    [c++]STL学习
  • 原文地址:https://www.cnblogs.com/noaman/p/6915797.html
Copyright © 2011-2022 走看看