首页 > 其他分享 >344. 反转字符串

344. 反转字符串

时间:2025-01-14 19:21:56浏览次数:1  
标签:tmp 卡哥 运算 int 反转 344 字符串 size

题目

这道题很简单了,自己写的:

class Solution {
public:
    void reverseString(vector<char>& s) {
        int n = s.size();
        for (int i = 0; i < n / 2; ++i)
        {
            char tmp;
            tmp = s[i];
            s[i] = s[n - 1 - i];
            s[n - 1 - i] = tmp;
        }
    }
};

看了下卡哥思路,还是有值得学习的地方的,卡哥是从双指针角度来做的,我是直接从数组本身的结构来思考的。

按照卡哥思路的代码:

class Solution {
public:
    void reverseString(vector<char>& s) {
        for (int i = 0, j = s.size() - 1; i < j; i++, j--) {
            swap(s[i],s[j]);
        }
    }
};

补充:

swap的两种实现方法:

一种就是常见的交换数值:

int tmp = s[i];
s[i] = s[j];
s[j] = tmp;

一种就是通过位运算:

s[i] ^= s[j];
s[j] ^= s[i];
s[i] ^= s[j];

通过位运算的交换,不用定义临时变量,其原理如下:

img

img

通过位运算的交换的注意事项:
img

标签:tmp,卡哥,运算,int,反转,344,字符串,size
From: https://www.cnblogs.com/hisun9/p/18671424

相关文章

  • 205. 同构字符串
    题目这道题一直想着用一个哈希表能不能做出来,最终没有做出来。看了卡哥思路,卡哥是用了两个哈希表,使用两个map保存s[i]到t[j]和t[j]到s[i]的映射关系,如果发现对应不上,立刻返回false。看了卡哥代码敲的:classSolution{public:boolisIsomorphic(strings,stri......
  • 1130: 【入门】简单a+b(字符串式子a+b)
    看到了吗,不是正常的输入a和b,然后直接相加,而是一个式子,没关系,一个字符串对于电脑而言奥秘多多,给电脑一个式子,他会反应吗?是不是不会。诶,但是让他去提取,那就是“怎么看都看不够”,嘿嘿,开个玩笑,就是提取字符串里的信息可以解决不少问题,这题就是这样。下面是代码:#include<bits/stdc......
  • #1407. 字符串的插入
    题目描述输入一个句子(一行),将句子中的每一个单词翻转后输出。输入格式只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。输出格式翻转每一个单词后的字符串,单词之间的空格需与原文一致。输入数据1helloworld输出数据1ollehdlrow代码:#include<iostr......
  • 写一个方法判断字符串是否为回文字符串
    在前端开发中,你可以使用JavaScript来编写一个方法,用于判断字符串是否为回文字符串。回文字符串是指正序和倒序读都一样的字符串。以下是一个简单的JavaScript函数,用于实现这个功能:functionisPalindrome(str){//去除字符串中的空格,并转换为小写,以便不区分大小写和空格......
  • 【C++】字符串中的 insert 方法深层分析
    博客主页:[小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏:C++文章目录......
  • C16.【C++ Cont】string类字符串的关系运算和与string有关的函数
    目录1.知识回顾:strcmp函数2.六个关系运算符示例代码1运行结果示例代码2运行结果3.stoi和stol函数1.stoi函数函数声明使用说明示例代码3运行结果示例代码4运行结果示例代码5运行结果示例代码6运行结果2.stol函数4.stod和stof函数1.stod函数函数声明示例......
  • 字符串+图形
    https://codeforces.com/gym/580226/problem/F#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<ll,ll>;constdoubleP......
  • JAVA之PAI&字符串
    1、API(ApplicationProgrammingInterface):应用程序编程接口JAVAAPI:指的是JDK中提供的各种功能的java类2、字符串String     1.java.long.String类代表字符串     2.字符串的内容是不会发生改变的,它的对象在创建后不能被更改     3.创建Str......
  • leetcode3333 找到初始输入字符串II
    用键盘输入字符时,可能因为在一个键上停留太久,导致同一个字符被输入多次。给定word表示最终显示的字符串,以及整数k,表示希望输入字符串的最少长度,求希望输入串的总方案数,对1E9+7取模。1<=|word|<=5E5;1<=k<=2000;word只包含小写字母分析:1、假设最终串的长度为n,对其分组循环,把相......
  • Redis 是一个开源的高性能键值对存储数据库,通常被用作缓存、消息队列和持久化数据库。
    Redis服务器是什么?Redis是一个开源的高性能键值对存储数据库,通常被用作缓存、消息队列和持久化数据库。Redis支持多种数据结构,如字符串、哈希、列表、集合、有序集合、位图等。它被广泛用于需要快速读写操作、低延迟的场景。Redis可以作为一个独立的数据库使用,也可以作为缓......