如何反转给定的字符串?

简介: 【8月更文挑战第23天】

简介

反转字符串是一个常见的面试问题。有几种算法可以解决这个问题,包括:

1. 字符数组

我们可以将字符串转换为字符数组,然后逐个交换数组中的元素。

示例:

public class Example {
   
    public static void main(String[] args) {
   
        String str = "Hello world";

        // 将字符串转换为字符数组
        char[] chars = str.toCharArray();

        // 交换数组中的元素
        int left = 0;
        int right = chars.length - 1;
        while (left < right) {
   
            char temp = chars[left];
            chars[left] = chars[right];
            chars[right] = temp;
            left++;
            right--;
        }

        // 将字符数组转换为字符串
        String reversedStr = new String(chars);

        System.out.println("反转后的字符串:" + reversedStr);
    }
}

输出:

反转后的字符串:dlrow olleH

2. 递归

我们可以使用递归来反转字符串。基本情况是字符串长度为 0 或 1,在这种情况下,我们返回字符串本身。否则,我们交换字符串的第一个和最后一个字符,并递归地反转剩余的字符串。

示例:

public class Example {
   
    public static void main(String[] args) {
   
        String str = "Hello world";

        // 调用递归函数反转字符串
        String reversedStr = reverse(str);

        System.out.println("反转后的字符串:" + reversedStr);
    }

    public static String reverse(String str) {
   
        if (str.length() == 0 || str.length() == 1) {
   
            return str;
        } else {
   
            return str.charAt(str.length() - 1) + reverse(str.substring(0, str.length() - 1));
        }
    }
}

输出:

反转后的字符串:dlrow olleH

3. StringBuilder

我们可以使用 StringBuilder 类来反转字符串。StringBuilder 是一个可

目录
相关文章
|
索引
【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符
目录 917. 仅仅反转字母 387. 字符串中的第一个唯一字符
48 0
|
6月前
|
存储 索引
LeetCode 387. 字符串中的第一个唯一字符
LeetCode 387. 字符串中的第一个唯一字符
37 0
|
3月前
|
存储 Java 数据处理
|
6月前
|
Java
给定一个字符串数组,如何找到其中最长的回文子串?
【4月更文挑战第13天】Java动态规划解题:找出字符串数组中最长的回文子串。代码中,`longestPalindrome`函数遍历数组,利用`expandAroundCenter`方法检测以每个字符为中心的回文串并更新最长长度。当遍历完所有字符串后,返回最长回文子串。
47 6
|
6月前
|
索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
|
6月前
|
算法
leetcode:387. 字符串中的第一个唯一字符
leetcode:387. 字符串中的第一个唯一字符
27 0
|
6月前
|
C++ 索引
字符串中的第一个唯一字符(C++)
字符串中的第一个唯一字符(C++)
60 0
|
算法 程序员
倒置字符串
倒置字符串
字符串转数组、数组转字符串、给第一个单词色值
字符串转数组、数组转字符串、给第一个单词色值
​判断给定字符序列是否是回文
​判断给定字符序列是否是回文
76 0