当前位置: 首页 > news >正文

408算法题leetcode--第五天

953. 验证外星语词典

  • 953. 验证外星语词典
  • 思路:先用哈希表建立优先级,再进行排序
  • 时间:O(mn),m、n分别是words和string的长度;空间:O(1),小写字母26个
class Solution {
public:bool isAlienSorted(vector<string>& words, string order) {// 字母表vector<int>cmp(26, 0);int size = order.size();for(int i = 0; i < size; i++){cmp[order[i] - 'a'] = i;}// 比较size = words.size();for(int i = 1; i < size; i++){bool flag = false;for(int j = 0; j < words[i - 1].size() && j < words[i].size(); j++){if(cmp[words[i - 1][j] - 'a'] < cmp[words[i][j] - 'a']){flag = true;break;} else if(cmp[words[i - 1][j] - 'a'] > cmp[words[i][j] - 'a']) {return false;}}if(!flag){// 前面的字符都相等,如abc和abcdif(words[i - 1].size() > words[i].size()){return false;}}}return true;}
};

242. 有效的字母异位词

  • 242. 有效的字母异位词
  • 思路:建立两个哈希表,然后对比是否相同
  • 时间:O(n),即遍历两次字符串,然后遍历一次哈希表;空间:O(1)
class Solution {
public:bool isAnagram(string s, string t) {int hash_s[26] = {0}, hash_t[26] = {0};for(auto c : s){hash_s[c - 'a']++;   }for(auto c : t){hash_t[c - 'a']++;   }// 比较for(int i = 0; i < 26; i++){if(hash_s[i] != hash_t[i]){return false;}}return true;}
};

389. 找不同

  • 389. 找不同
  • 思路:可以和上一题的思路一样;也可以先对S和T字符串的ascii值求和,然后相减就是答案;同时也可以用位运算,如a^a =0, ab ^ ab = 0, 而ab ^ abc = c
  • 时间:O(n);空间:O(1)
class Solution {
public:char findTheDifference(string s, string t) {int ss = 0, tt = 0;for(auto c : s){ss += c;}for(auto c : t){tt += c;}return tt - ss;}
};

http://www.mrgr.cn/news/27815.html

相关文章:

  • 算法——长度最小的子数组(leetcode209)
  • 20.UE5UI预构造,开始菜单,事件分发器
  • RestSharp基本使用方法
  • 第三章springboot数据访问
  • ADC输出码和输入电压转换关系
  • 直流保护电路设计及保护器件参数说明和选型
  • Cubieboard2(五) 安装无线网卡驱动
  • 软考中级网络工程师——第十二章
  • asio中的handler
  • 基于ssm+vue+uniapp的智能停车场管理系统小程序
  • 【数据结构与算法 | 每日一题 | 力扣篇】力扣1184
  • 滚雪球学SpringCloud[3.3讲]:Resilience4j:现代化的容错处理详解
  • Java 入门指南:JVM(Java虚拟机)—— 双亲委派模型(Parent Delegation Model)
  • Redis基础数据结构之 quicklist 和 listpack 源码解读
  • 请求响应-05.请求-日期参数JSON参数
  • 3286、穿越网格图的安全路径
  • node express 开启多进程
  • C/C++内存管理
  • Sprie for .net8.0填报项目验收材料
  • (批处理)设置延时+设置关机倒计时
  • 【Linux】多路转接epoll
  • 【智路】智路OS air-edge 开发者手册 功能概述
  • 人脸防伪检测系统源码分享
  • USB组合设备——串口+鼠标+键盘
  • web安卓逆向之必学CSS基础知识
  • 笔试强训day13