首页 > 其他分享 >LeetCode | 344 Reverse String

LeetCode | 344 Reverse String

时间:2024-08-09 17:51:25浏览次数:13  
标签:ReverseString char String dolphinmind public 344 数组 reverseString LeetCode

分析

字符数组本质上还是数组,双指针本质上是遍历,遍历过程只处理两个独立数据,移动过程将问题分为已经解决和未解决的两部分。
在这个题目中值得注意的是,关于字符数组进行数据原地交换采用的是异或^的方式

主类

package com.github.dolphinmind.string;

/**
 * @author dolphinmind
 * @ClassName ReverseString
 * @description
 * @date 2024/8/9
 */

public class ReverseString {
    public void reverseString(char[] s) {

        if (s == null || s.length <=0) {
            return;
        }

        int low = 0;
        int high = s.length - 1;

        while (low < high) {
            /**
             * 使用异或运算来交换变量通常被认为是一种技巧性的做法,而不是一种标准做法
             */
//            s[low]  ^= s[high];
//            s[high] ^= s[low];
//            s[low]  ^= s[high];

            char temp = s[low];
            s[low] = s[high];
            s[high] = temp;
            low++;
            high--;
        }
    }
}


测试

package com.github.dolphinmind.string;

import org.junit.Test;

/**
 * @author dolphinmind
 * @ClassName ReverseStringTest
 * @description
 * @date 2024/8/9
 */

public class ReverseStringTest {

    @Test
    public void test_ReverseString() {
//        char[] s = {'h','e','l','l','o'};

        char[] s = {};

        ReverseString reverseString = new ReverseString();
        reverseString.reverseString(s);
        System.out.println(s);
    }
}

标签:ReverseString,char,String,dolphinmind,public,344,数组,reverseString,LeetCode
From: https://www.cnblogs.com/dolphinmind/p/18351196

相关文章

  • LeetCode | 383 RanSom Note
    分析赎金信在侦探系列是容易出现的场景,为了不暴露自己的笔迹,利用一本杂志里面已有的字符来组装自己的信。倘若这本杂志的字符不够,那么赎金信就无法完成。这道题与Valid-Anagram本质上是一致的。Anagram要求字符类型和数量完全一致,本题要求杂志里面所有的字符串类型和数量是赎金信......
  • 【Leetcode 169 】 多数元素——投票算法要把我迷倒了
     给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊n/2⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:nums=[3,2,3]输出:3示例 2:输入:nums=[2,2,1,1,1,2,2]输出:2提示:n==nums......
  • LeetCode | 1 Two Sum
    分析Givenanarrayofintegersnumsandanintegertarget,returnindicesofthetwonumberssuchthattheyadduptotarget.Youmayassumethateachinputwouldhaveexactlyonesolution,andyoumaynotusethesameelementtwice.Youcanreturnthean......
  • 代码随想录算法训练营day08|344.反转字符串,541.反转字符串II,卡码网:54.替换数字
    344.反转字符串题目链接:https://leetcode.cn/problems/reverse-string/description/我的代码:classSolution{public:voidreverseString(vector<char>&s){for(inti=0;i<s.size()/2;i++){chartemp=s[i];s[i]=......
  • Leetcode | 202 Happy Number
    分析在快乐数的题意上,通常情况下我们都会去顺着题目的意思去寻找最终结果是否为1,而后面的另一句话很有启示意义:"也可能是无限循环,但始终变不到1",那么为什么不会是无限不循环呢?证明范围限制:对于一个(d)位数的正整数(n),其最大值为99d=Max位数减少:每次计算之后,数字位数d要么减......
  • Leetcode热题100-128.最长连续序列
    Leetcode热题100-128.最长连续序列1.题目描述2.解题思路3.代码实现1.题目描述128.最长连续序列2.解题思路使用哈希集合的思想:初始化一个unordered_set并将nums中所有元素放入集合中;遍历数组,依次判断当前元素是否为连续序列的开始,若是则求出当前连续序列......
  • leetcode考试题
       +-------------+----------+|ColumnName|Type|+-------------+----------+|id|int||client_id|int||driver_id|int||city_id|int||status|enum||request_at|varchar|......
  • LeetCode | 349 Intersection Of Two Arrays
    分析两个数组的交集,双指针使用的前提是,两个数组已经处于有序状态。双指针的本质是遍历;双指针在线性数据结构中,进行数据处理,每次只专注于两个元素;指针遍历将问题拆解为两部分,即已解决和待解决问题。倘若两个数组是无序的状态,双指针指向每次都无法确认是否在历史中已经出现过,这个时......
  • iOS开发基础149-由UUIDString引发的思考
    问题1:[[UIDevicecurrentDevice]identifierForVendor].UUIDString什么情况下值会变化?[[UIDevicecurrentDevice]identifierForVendor].UUIDString是一个用于标识设备的唯一标识符(UUID),针对同一应用程序供应商(即同一开发者的应用程序集合),在设备上不变。然而,有一些情况会导致这个......
  • JavaScript toLocaleString() 方法
    定义和用法:toLocaleString()方法可根据本地时间把Date对象转换为字符串,并返回结果。语法:dateObject.toLocaleString()返回值dateObject的字符串表示,以本地时间区表示,并根据本地规则格式化。问题//Javascript中newDate().toLocaleString()在不同浏览器中的结果不一致的解决......