前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode#344. Reverse String(反转字符串)

Leetcode#344. Reverse String(反转字符串)

作者头像
武培轩
发布2018-09-28 15:11:39
4070
发布2018-09-28 15:11:39
举报
文章被收录于专栏:武培轩的专栏武培轩的专栏

题目描述

编写一个函数,其作用是将输入的字符串反转过来。

示例 1:

代码语言:javascript
复制
输入: "hello"
输出: "olleh"

示例 2:

代码语言:javascript
复制
输入: "A man, a plan, a canal: Panama"
输出: "amanaP :lanac a ,nalp a ,nam A"

思路

思路一:

逆序拼接字符串

思路二:

依次交换两边的值

思路三:

直接调用StringBuilder 的 reverse()

思路四:

用栈来实现反转

代码实现

代码语言:javascript
复制
package String;

import java.util.Stack;

/**
 * 344. Reverse String(反转字符串)
 * 编写一个函数,其作用是将输入的字符串反转过来。
 */
public class Solution344 {
    public static void main(String[] args) {
        Solution344 solution344 = new Solution344();
        String s = "hello";
        System.out.println(solution344.reverseString_4(s));
    }

    /**
     * 逆序拼接字符串
     *
     * @param s
     * @return
     */
    public String reverseString(String s) {
        StringBuilder str = new StringBuilder();
        for (int i = s.length() - 1; i >= 0; i--) {
            str.append(s.charAt(i));
        }
        return String.valueOf(str);
    }

    /**
     * 依次交换两边的值
     *
     * @param s
     * @return
     */
    public String reverseString_2(String s) {
        char[] chars = s.toCharArray();
        int i = 0;
        int j = chars.length - 1;
        while (i < j) {
            char temp = chars[i];
            chars[i] = chars[j];
            chars[j] = temp;
            i++;
            j--;
        }
        return new String(chars);
    }

    /**
     * 直接调用StringBuilder 的 reverse()
     *
     * @param s
     * @return
     */
    public String reverseString_3(String s) {
        return new StringBuilder(s).reverse().toString();
    }

    /**
     * 用栈来实现反转
     *
     * @param s
     * @return
     */
    public String reverseString_4(String s) {
        Stack<Character> stack = new Stack<>();
        char[] chars = s.toCharArray();
        String res = "";
        for (int i = 0; i < chars.length; i++) {
            stack.push(chars[i]);
        }
        for (int i = 0; i < chars.length; i++) {
            res += stack.pop();
        }
        return res;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 思路
  • 代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档