方法一:

将字符串从尾到头依次拼接到另一个字符串中:

 public String solve (String str) {if(str.length()<=1)return str;String string="";for(int i = str.length()-1;i>=0;i--){string += str.charAt(i);}return string;}

方法一的优化,就地反转,只需要将头尾对调即可,交换的次数是length/2,比上面的次数少一半

    public String solve (String str) {if(str.length()<=1)return str;char[] charArray = str.toCharArray();for(int i = 0;i<str.length()/2;i++){char temp = charArray[i];charArray[i] = charArray[charArray.length-i-1];charArray[charArray.length-i-1] = temp;}return new String(charArray);}

方法二:双指针法

采用一头一尾往中间走,循环条件是left>=right(字符个数单数left>right,双数left=right)

代码如下:

    public String solve (String str) {if(str.length() <= 1)return str;int left = 0;int right = str.length()-1;char[] chars = str.toCharArray();while(left < right){char c = chars[right];chars[right] = chars[left];chars[left] = c;left++;right--;}return new String(chars);}

方法三:偷懒,使用StringBuffer中的reverse方法

    public String solve (String str) {
//先将字符串转为Buffer,再翻转,转回字符串if(str.length()<=1)return str;StringBuffer string  = new StringBuffer(str);return string.reverse().toString();
//一行代码实现   return new StringBuilder(str).reverse().toString();}

方法四:利用堆栈的后进先出特性

    public String solve (String str) {if(str.length()<=1)return str;Stack s = new Stack();for(int i=0;i<str.length();i++){s.push(str.charAt(i));}str="";while(!s.empty()){str+=s.pop();}return str;}

反转(翻转)字符串(Java实现)相关推荐

  1. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  2. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  3. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

  4. python反转字符串_python翻转字符串

    Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串: 如果第三个参数为负数表示逆向读取. 以下实例用于 ...

  5. 算法--------翻转字符串里的单词(Java版本)

    题目: 给定一个字符串,逐个翻转字符串中的每个单词.示例 1:输入: "the sky is blue" 输出: "blue is sky the" 示例 2: ...

  6. Java 翻转字符串 将字符串逆序

    问题描述:给定一个字符串,返回字符串翻转后的字符串. 解法一:利用Java中的StringBuffer类提供的reverse()方法实现. 代码如下: import java.util.*;publi ...

  7. java反转数组_Java实现数组反转翻转的方法实例

    数组翻转的方法(java实现),数组翻转,就是将数组倒置,例如原数组为:{"a","b","c","d"},那么翻转后的 ...

  8. Java实现数组反转翻转的方法

    Java实现数组反转翻转的方法     [尊重 原创,转载请注明出处 ]http://blog.csdn.net/guyuealian/article/details/51113133      数组 ...

  9. 字符串单词翻转c语言,C语言反转一行字符串单词示例

    在C语言中,如何编写反转一行字符串单词的程序?创建一个源文件:program_to_reverse_line.c,参考以下实现代码 - #include #include int string_len ...

  10. python单词反转_翻转字符串里的单词

    翻转字符串里的单词 题目要求 给定一个字符串,逐个翻转字符串中的每个单 示例: 输入: " the sky is blue", 输出: "blue is sky the ...

最新文章

  1. 【软件测试培训】了解jmeter分布式测试
  2. Asp.net常用优化方法
  3. 標準化,歸一化和的概念与适用范围整理
  4. 背账100万,不付利息不用还钱,银行套路好深
  5. 操作系统课设——设计模拟一个SPOOLING假脱机输出程序
  6. Java设计模式学习总结(4)——创建型模式之单例模式
  7. 集合类和JAVA多线程
  8. 基于alpine用dockerfile创建的ssh镜像
  9. 《GPU编程与CG语言之阳春白雪下里巴人》 读书笔记1
  10. wxpython多个面板_wxpython笔记:Wxpython pannel切换
  11. HTML设置悬停效果,如何使用纯CSS实现按钮的悬停效果
  12. MySQL 数据库之实现热备份
  13. 用python批量修改后缀名
  14. 并发中的同步锁(synchronized)
  15. 几种mos管驱动电路
  16. 高一计算机课的总结,高中《信息技术》期末教学总结范文
  17. 软件设计师:计算机硬件基础
  18. 天刀帐号角色服务器查询系统,角色转服查询
  19. 苹果安卓手机试玩赚钱app
  20. 制作大白菜U盘后,想要恢复成普通U盘的方法

热门文章

  1. win10下运行Ubuntu20.04.4 LTS 报错:WslRegisterDistribution failed with error: 0x80070050
  2. SDN在云数据中心的架构
  3. 主版本 51 比 50 新,此编译 器支持最新的主版本。
  4. Revit开发柱附着和分离
  5. 【暑期集训第一周:搜索】【DFSBFS】
  6. 16年老股民,转入外汇市场,炒外汇为什么要用EA?
  7. Shuffle 操作
  8. ActiveX控件在IE浏览器中自动下载
  9. c语言歌手管理系统,C语言——管理系统
  10. vim环境设置(如:自动对齐)以及在vim中直接修改只读文件