当前位置: 首页 > 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;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 6. Transforms的使用(一)--ToTensor()
  • 右值 引用
  • 【Linux】多路转接epoll
  • 【低光照论文精读】RT-VENet: A Convolutional Network for Real-time Video Enhancement
  • Linux FTP服务问题排查
  • 【信创】Linux上图形化多ping工具--gping的编译安装与打包 _ 统信 _ 麒麟 _ 方德
  • 面试爱考 | 设计模式
  • 理解Android开发中的MVC、MVVM和MVP设计模式
  • Android中的Intent的作用
  • Pandas_sqlite
  • 如何避免 Redis 哈希冲突?
  • Anaconda 安装与使用教程
  • [Web安全 网络安全]-XSS跨脚本攻击
  • 算法:TopK问题
  • “药乡”怀化,按下产业向海“加速键”
  • CAP理论的例子讲解
  • create-react-app项目添加less配置
  • es的写入过程
  • Facebook AccountKit 接入的坑点
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Map集合、散列表、红黑树介绍
  • node-glob通配符
  • node和express搭建代理服务器(源码)
  • Redux 中间件分析
  • SAP云平台里Global Account和Sub Account的关系
  • 番外篇1:在Windows环境下安装JDK
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 我的业余项目总结
  • 一天一个设计模式之JS实现——适配器模式
  • 在Unity中实现一个简单的消息管理器
  • Mac 上flink的安装与启动
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​Java并发新构件之Exchanger
  • ​香农与信息论三大定律
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #### golang中【堆】的使用及底层 ####
  • #WEB前端(HTML属性)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • ***检测工具之RKHunter AIDE
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .Net core 6.0 升8.0
  • .net 按比例显示图片的缩略图
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .net6+aspose.words导出word并转pdf
  • .Net小白的大学四年,内含面经
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)