LeetCode 解题笔记(三)字符串

2023-11-16


总目录:      LeetCode 解题笔记(一)总


一、基础篇

344. 反转字符串(2022/03/06)

标签:字符串

题目:
在这里插入图片描述

● 我的答案:

这应该是做过的最简单的一道题目

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

● 官方答案:使用 swap 函数:

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

7. 整数反转(2022/03/07)

链接: 7. 整数反转

题目:
在这里插入图片描述
标签: 字符串,数学

● 我的答案:

class Solution {
public:
    int reverse(int x) {
        int ret = 0;
        while(x) {
        	//以下次判断条件为,看答案后可知
            if (ret < INT_MIN / 10 || ret > INT_MAX / 10) {
                return 0;
            }
            ret = ret*10 + x%10;
            x = x/10; 
        }
        return ret;
    }
};

INT_MIN 在标准头文件 limits.h 中定义:

#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)

387. 字符串中的第一个唯一字符(2022/03/08)

● 题目:
在这里插入图片描述
● 标签: 队列、哈希表、字符串

● 我的解法:

暴力解法,都失败了… 哈希方法:

class Solution {
public:
    int firstUniqChar(string s) {
        //哈希第一次记录频率, 26个字母而已
        int n = s.size();
        unordered_map<int,int> _map;    //无序的,有键值的用 unordered_map
        for(int i=0; i<n; i++) {
            _map[s[i]] ++;
        }
        /*
		for (char ch: s) {    //可以直接常引用了
          ++_map[ch];
    	}
		*/

        //第二次取最近的字符
        for(int i=0; i<n; i++) {
            if(_map[s[i]] == 1) return i; 
        }

        return -1;
    }
};

242. 有效的字母异位词(2022/03/09)

● 链接:242. 有效的字母异位词

**● 标签:**字符串、哈希表、数组

● 题目:
在这里插入图片描述

● 我的答案:
哈希计数,然后对比,相减

class Solution {
public:
    bool isAnagram(string s, string t) {
        unordered_map<int,int> _map;
        for(auto const & num: s) {
            ++_map[num];
        }

        for(auto const & num: t) {
            if(_map.count(num)) {
                --_map[num];
                if(_map[num] == 0) {
                    _map.erase(num);
                }
            }
            else {
                return false;
            }
        }

        if(_map.size()!=0)  return false;
        else                return true;
    }
};

● 官方答案1: 判断长度,快速排序判断内容

class Solution {
public:
    bool isAnagram(string s, string t) {
        if (s.length() != t.length()) {
            return false;
        }
        sort(s.begin(), s.end());
        sort(t.begin(), t.end());
        return s == t;
    }
};

● 官方答案2: 哈希表 + 数组,与我答案思路类似!

class Solution {
public:
    bool isAnagram(string s, string t) {
        if (s.length() != t.length()) {
            return false;
        }
        vector<int> table(26, 0);
        for (auto& ch: s) {
            table[ch - 'a']++;
        }
        for (auto& ch: t) {
            table[ch - 'a']--;
            if (table[ch - 'a'] < 0) {
                return false;
            }
        }
        return true;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode 解题笔记(三)字符串 的相关文章

随机推荐

  • Java占位符总结

    文章目录 实现方式 方式一 jdk1 8 java text MessageFormat 方式二 Log4j javaorg slf4j helpers MessageFormatter 方式三 commons text org apach
  • linux下搭建goprotobuf

    linux下搭建goprotobuf 1 搭建go语言环境 参考官网 http golang org doc install 主要是设置好GO PATH这个变量 这个就是你的工作环境目录 可以使用go env来查询设置好了没 2 搭建pro
  • python中列表概念,Python基本数据类型——List(列表)

    1 序列 1 1 序列的基本概念 序列是Python中最基本的一种数据结构 序列用于保存一组有序的数据 所有的数据在序列当中都有一个唯一的位置 索引 并且序列中的数据会按照添加的顺序来分配索引 数据结构是指计算机中数据存储的方式 1 2 序
  • Pinpoint--基础--04--请求追踪和字节码插装

    Pinpoint 基础 04 请求追踪和字节码插装 备注 背景 英文原文 https naver github io pinpoint 1 8 4 techdetail html Dapper原文 https ai google resea
  • 00后卷王自述,我真的很卷吗?

    前段时间我去面试了一个软件测试公司 成功拿到了offer 薪资也从10k涨到了18k 对于工作都还没两年的我来说 还是比较满意的 毕竟有些工作了3到4年的可能还没有我的高 在公司一段时间后大家都说我是卷王 其实我也没办法 自己家里条件不是很
  • Pytorch ----注意力机制与自注意力机制的代码详解与使用

    注意力机制的核心重点就是让网络关注到它更需要关注的地方 当我们使用卷积神经网络去处理图片的时候 我们会更希望卷积神经网络去注意应该注意的地方 而不是什么都关注 我们不可能手动去调节需要注意的地方 这个时候 如何让卷积神经网络去自适应的注意重
  • Java基础6--对象和类

    Java基础6 对象和类 文章目录 Java基础6 对象和类 概念 Java中的对象 Java 中的类 构造方法 创建对象 访问实例变量和方法 Java 内部类 非静态内部类 静态内部类 从内部类访问外部类成员 import 语句 概念 对
  • 异步编程CompletableFuture系列3 接口合并

    直接上代码 import java util concurrent CompletableFuture import java util concurrent TimeUnit public class Test3 public stati
  • 没有找到MSVCR90D.DLL的两种解决方法

    1 没有找到MSVCR90D DLL的简单解决方法之一 在VS2005 2008下写C C 程序时 偶然会出现这样的错误 这样的错误一般会出现在第一次运行项目时 或重装VS后 这里提供一种简单的解决办法 希望对初学者有用 打开项目的属性页
  • 【CCPC-2019】【江西省赛】【霖行】J-Worker

    CCPC 2019 江西省赛 霖行 J Worker 题目 Avin meets a rich customer today He will earn 1 million dollars if he can solve a hard pro
  • python中用pickle打开文件报错:EOFError: Ran out of input

    用pickle dump 保存文件之后如果不关闭文件就会出现此错误 f open test pkl wb pickle dump dict f f close 后面添加关闭就不会报错
  • JAVA - 判断两个浮点数相等

    背景知识 float型和double型是JAVA的基本类型 用于浮点数表示 在JAVA中float型占4个字节32位 double型占8个字节64位 一般比较适合用于工程测量计算中 其在内存里的存储结构如下 float型 符号位 1 bit
  • 基于梯度下降算法求解线性回归

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 01 线性回归 Linear Regression 梯度下降算法在机器学习方法分类中属于监督学习 利用它可以求解线性回归问题 计算一组二维数据之间的线性关系 假设有一组数
  • Solidworks2022-2-软件安装步骤

    Solidworks2022软件安装步骤 1 先确定你的系统是否已经安装了 net 3 5 和 net 4 0 net 3 5 和 net 4 0查看方法 如果 没有或缺少 根据第二张图进行下载或增加一下 2 断开网络连接 关闭保护设置 3
  • Linux_centos7_vi/vim程序编辑器_(6)_(bird_bro)

    参考资料 https studylib net doc 11479665 vi vim graphical cheat sheet q j
  • noj.26 二叉排序树的合并

    题目描述 分析 1 先序 创建二叉排序树 2 在二叉排序树中插入一个值 3 n 大于根节点在右子树中插入 4 n 小于根节点在左子树中插入 5 合并排序二叉树 6 中序输出合并后的排序二叉树 完整代码 include
  • 谈谈react操作onMouseEnter、onMouseLeave结合css里的hover

    react对于每个html元素都添加了很多事件处理函数 这些事件网上一搜就都出来了 这里简单说下在react中利用js进行操作类似于css里的hover所使用的事件 比如这样一个需求 有以下3个div div class a abc a d
  • 在 cocos2d 里面如何使用 Texture Packer 和像素格式来优化 spritesheet

    原文链接 http www cnblogs com andyque archive 2011 03 18 1988097 html 免责申明 必读 本博客提供的所有教程的翻译原稿均来自于互联网 仅供学习交流之用 切勿进行商业传播 同时 转载
  • java开发思路_Java Web开发教程——基本思路

    思路 将需求拆解为基本技术的简单组合 再分别实现 基本技能必须是足够简单且容易理解的 对基本技能的组合 必须是严格相等于需求域的 不能有缺漏 一 基本技能 基础知识 B S Browser Server 就是以浏览器作为用户界面与用户进行交
  • LeetCode 解题笔记(三)字符串

    文章目录 一 基础篇 344 反转字符串 2022 03 06 7 整数反转 2022 03 07 387 字符串中的第一个唯一字符 2022 03 08 242 有效的字母异位词 2022 03 09 总目录 LeetCode 解题笔记