题目描述
接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
题目要求
- 输入描述:
输入一行,为一个只包含小写字母的字符串。 - 输出描述:
输出该字符串反转后的字符串。
示例1
- 输入:
abcd - 输出:
dcba
💡 优化后的 JAVA 解法
这里提供两种优化方案:一种是利用 Java 内置的高效方法,另一种是手动实现反转逻辑(面试中更常见)。
方案一:使用 StringBuilder.reverse() (最简洁)
这是最推荐的方法,代码量少且执行效率高。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 读取输入
if (sc.hasNextLine()) {
String str = sc.nextLine();
// 直接利用 StringBuilder 的 reverse 方法反转并输出
System.out.println(new StringBuilder(str).reverse().toString());
}
sc.close();
}
}
方案二:双指针法 / 字符数组 (手动实现)
如果不允许使用内置的 reverse() 方法,可以使用字符数组进行首尾交换,或者倒序遍历拼接。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
if (sc.hasNextLine()) {
String str = sc.nextLine();
// 将字符串转换为字符数组
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--;
}
System.out.println(new String(chars));
}
sc.close();
}
}