Write a function that reverses a string. The input string is given as an array of characters char[].
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
You may assume all the characters consist of printable ascii characters.
Example 1:
Input: ["h","e","l","l","o"] Output: ["o","l","l","e","h"]Example 2:
Input: ["H","a","n","n","a","h"] Output: ["h","a","n","n","a","H"]两头开始,依次交换字符,直到中间位置为止。
/* 执行用时 : 64 ms, 在Reverse String的C提交中击败了96.47% 的用户 内存消耗 : 13.7 MB, 在Reverse String的C提交中击败了75.42% 的用户 */ void reverseString(char* s, int sSize){ int i = 0,j = sSize-1; char temp; while(i < j){ temp = s[i]; s[i] = s[j]; s[j] = temp; i++;j--; } } /* 执行用时 : 72 ms, 在Reverse String的C提交中击败了94.85% 的用户 内存消耗 : 13.8 MB, 在Reverse String的C提交中击败了74.86% 的用户 */ void reverseString(char* s, int sSize){ int i; char temp; for(i = 0; i < sSize; i++, sSize--){ temp = *(s + i); *(s + i) = * (s + sSize- 1); * (s + sSize - 1) = temp; } return s; } //执行时间20ms--范例 /* 本人电脑提交的数据: 执行用时 : 64 ms, 在Reverse String的C提交中击败了98.22% 的用户 内存消耗 : 13.6 MB, 在Reverse String的C提交中击败了75.42% 的用户 */ void reverseString(char* s, int sSize) { int i; char temp; for(i=0;i<sSize/2;i++){ temp=s[i]; s[i]=s[sSize-i-1]; s[sSize-i-1]=temp; } }掌握各种不同的对地址的引用方式。