• LeetCode~344. 反转字符串


    编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 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"]
    

    解题思路分析

    1. 不能使用额外的数组空间,在原数组上进行交换
      1. 定义两个指针 start, end
    2. 交换时所需要的额外空间
      1. temp
    3. 需要将字符中的元素位置反转过来
      1. while
    4. 返回结果
      1. 因为是数组,引用的是地址,所以这里不需要返回值,修改后的内容不会消失

    代码

    class Solution {
        public void reverseString(char[] s) {
            int start = 0;
            int end = s.length - 1;
            char temp = ' ';
            while(start < end){
                temp = s[start];
                s[start++] = s[end];
                s[end--] = temp;
            }
        }
    }
    

    来源:力扣(LeetCode)

    链接:https://leetcode-cn.com/problem s/plus-one

    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 相关阅读:
    几个概率题
    几个智力题。。
    [算法]各种二分查找
    深入 JavaScript 时间对象 Date
    Leaflet 调用百度瓦片地图服务
    JavaScript中进制和字符编码问题
    DOM事件流
    flex 弹性布局
    javascript 闭包内部机制
    HTML DOM setAttribute()、与createAttribute()
  • 原文地址:https://www.cnblogs.com/unrecognized/p/11537338.html
走看看 - 开发者的网上家园