/* * @lc app=leetcode.cn id=344 lang=c * * [344] 反转字符串 * * https://leetcode-cn.com/problems/reverse-string/description/ * * algorithms * Easy (65.20%) * Total Accepted: 39.8K * Total Submissions: 61.1K * Testcase Example: '["h","e","l","l","o"]' * * 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 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"] * */ void reverseString(char* s, int sSize) { int i,j=sSize-1; char temp; for(i=0;i<j;i++){ temp = s[i]; s[i] = s[j]; s[j] = temp; j--; } return s; }
很简单,两头往中间来回替换即可。
python更是一个函数就搞定(虽然效率低了点。。)
# # @lc app=leetcode.cn id=344 lang=python3 # # [344] 反转字符串 # # https://leetcode-cn.com/problems/reverse-string/description/ # # algorithms # Easy (65.20%) # Total Accepted: 39.8K # Total Submissions: 61.1K # Testcase Example: '["h","e","l","l","o"]' # # 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 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"] # # class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ s.reverse()