PisecesPeng / PisecesPeng.record.me

:beach_umbrella: All things are difficult before they are easy
MIT License
3 stars 1 forks source link

反转字符串 #38

Closed PisecesPeng closed 2 years ago

PisecesPeng commented 2 years ago

反转字符串

编写一个函数, 其作用是将输入的字符串反转过来.输入字符串以字符数组char[]的形式给出.
不要给另外的数组分配额外的空间, 你必须原地修改输入数组、使用O(1)的额外空间解决这一问题.
你可以假设数组中的所有字符都是ASCII码表中的可打印字符.

示例1:
输入: ["h","e","l","l","o"]
输出: ["o","l","l","e","h"]

示例2:
输入: ["H","a","n","n","a","h"]
输出: ["h","a","n","n","a","H"]


题目地址: https://leetcode-cn.com/problems/reverse-string/

PisecesPeng commented 2 years ago

解题思路

代码

public static void func(char[] s) {
    // 循环交换
    for (int i = 0, lastIdx = s.length - 1; i < s.length / 2; i++) {
        char tmp = s[i];
        s[i] = s[lastIdx - i];
        s[lastIdx - i] = tmp;
    }
}
PisecesPeng commented 2 years ago

LeetCode题解

解题思路

代码

public static void func(char[] s) {
    int n = s.length;
    for (int left = 0, right = n - 1; left < right; ++left, --right) {
        char tmp = s[left];
        s[left] = s[right];
        s[right] = tmp;
    }
}