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

坪山网站建设价位建商城网站

坪山网站建设价位,建商城网站,电商平台官网,河东集团网站建设一、2825. 循环增长使字符串子序列等于另一个字符串 class Solution { public:bool canMakeSubsequence(string str1, string str2) {int i 0, j 0;while(i < str1.size() && j < str2.size()){// 计算递增后的字符&#xff08;z会循环到a&#xff09;char ne…

一、2825. 循环增长使字符串子序列等于另一个字符串

class Solution {
public:bool canMakeSubsequence(string str1, string str2) {int i = 0, j = 0;while(i < str1.size() && j < str2.size()){// 计算递增后的字符(z会循环到a)char next_char = (str1[i] == 'z') ? 'a' : str1[i] + 1;// 两种可能的匹配方式if (str1[i] == str2[j] || next_char == str2[j]){j++;}i++;}return j == str2.size();}
};

二、1023. 驼峰式匹配

class Solution {
public:vector<bool> camelMatch(vector<string>& queries, string pattern) {vector<bool> ans;for(string word : queries){int i = 0, j = 0;while(i < word.size() && j < pattern.size()){if(word[i] == pattern[j]) j++;else if(isupper(word[i])) break;i++;}bool match = (j == pattern.size());// 如果模式串已经全部匹配,继续检查word剩余部分while(match && i < word.size()){if(isupper(word[i])){match = false;break;}i++;}ans.push_back(match);}return ans;}
};

因为可能出现前面已经匹配完后,后面还插入了大写字母的情况,所以需要对word剩余部分再做遍历判断是否有大写字母。

isupper——判断是否是大写字母
islower——小写
isalpha——字母
isdigit——数字

三、3132. 找出与数组相加的整数 II

class Solution {
public:int minimumAddedInteger(vector<int>& nums1, vector<int>& nums2) {sort(nums1.begin(), nums1.end());sort(nums2.begin(), nums2.end());// 枚举可能的 x,对应保留部分的起始位置为 nums1[2], nums1[1], nums1[0]for (int i = 2; i > 0; i--) { int x = nums2[0] - nums1[i];int j = i, k = 0;            // j从i开始遍历,表示从保留部分开始while (j < nums1.size() && k < nums2.size()) {// 检查当前元素加上 x 是否正好等于 nums2[k],if (nums1[j] + x == nums2[k]) k++;j++;}// 如果成功匹配整个 nums2,则找到合法的 xif (k == nums2.size()) return x;}return nums2[0] - nums1[0];}
};

 有种抽丝剥茧的感觉,寻找子数组的本质被隐藏在对x的枚举之下
 

四、522. 最长特殊序列 II

class Solution {
public:int findLUSlength(vector<string>& strs) {sort(strs.begin(), strs.end(), [](const string& a, const string& b) {return a.length() > b.length(); // 按长度降序排序});unordered_map<string, int> freq;for (const string& s : strs) freq[s]++; // 统计字符串频率for (int i = 0; i < strs.size(); i++) {if (freq[strs[i]] > 1) continue; // 如果字符串重复,直接跳过for(int i = 0; i < strs.size(); i++){bool ans = true;for (int j = 0; j < strs.size(); j++) {if (i != j && isSubseq(strs[i], strs[j])) {ans = false;break;}}if (ans) return strs[i].length();}return -1;}private:
// a是否是b的子串,是返回true
bool isSubseq(const string& a, const string& b) {if (a.size() > b.size()) return false; // 长度检查优化int i = 0, j = 0;while (i < a.size() && j < b.size()) {if (a[i] == b[j]) i++;j++;}return i == a.size();}
};

1.只需要直接比较字符串之间是不是另一个字符串的子串,因为当自己是对方的子串,那自己的子串也肯定是对方的子串;
2.因为已经按长度降序排好了,所以当从左往右遍历查找,有一个字符串不是其他字符串的子串的时候就直接输出这个字符串的长度,它就是答案。

http://www.dtcms.com/wzjs/837498.html

相关文章:

  • 微网站报价东莞市营销网站建设
  • 西安博达网站建设中山市建设工程 交易中心网站
  • 土巴兔网站开发wordpress 分类 字段
  • 常州 做网站做软件页面设计的软件
  • shopify做旅游网站微信公众号怎么开通免费
  • 成都网站建设公司有哪些网站服务器做缓存吗
  • 那些网站做的非常好看的wordpress不能安装
  • 建网站域名怎么买wordpress用什么数据库连接
  • 模板网站如何做优化云网站建设 优帮云
  • 青岛网站建设电话wifi管理平台
  • 化工网站建设郑州网站优化汉狮网络
  • 建行商城网站测评网站架构
  • 网站维护什么情况盐城z做网站
  • 高台网站建设哪些网站做推广
  • 招聘网有哪些网站比较好电商网站开发背景
  • 阿里云网站建设基本流程百度一下就知道官网
  • 二手交易网站建设目标wordpress 弹出对话框
  • 网站建设客户合同拼多多怎么开店
  • 找单位做网站需要注意什么论坛推广工具
  • 做网站有哪个软件好怎么让百度多收录网站
  • 应聘网站开发的自我介绍企业管理软件系统网
  • 个人直播网站怎么做网站建设首选
  • 高密制作网站网络舆情监测中心
  • 湖南优化网站建设网站设置右击不了如何查看源代码
  • 可以去非菲律宾做游戏网站吗自己做游戏需要学什么
  • 成都服装网站建设聊城手机网站制作
  • 深圳专业网站开发网站建设哪家好知道
  • 商场网站设计山东聊城建设学校怎么样
  • dede手机网站模板下载数学网站怎么做的
  • 沈阳网站开发外包无锡企业建设网站公司