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

为什么要建设公司网站百度网盟广告

为什么要建设公司网站,百度网盟广告,做兼职网站,唯品会官网一家做特卖的网站1、题目描述: 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。 如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在&#x…

1、题目描述:

给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。

如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。

示例 1:

输入:s = "abpcplea", dictionary = ["ale","apple","monkey","plea"]
输出:"apple"

示例 2:

输入:s = "abpcplea", dictionary = ["a","b","c"]
输出:"a"

提示:

  • 1 <= s.length <= 1000
  • 1 <= dictionary.length <= 1000
  • 1 <= dictionary[i].length <= 1000
  • s 和 dictionary[i] 仅由小写英文字母组成

2、代码:

高逼格代码:

class Solution {
public:string findLongestWord(string s, vector<string>& dictionary) {// 定义一个 lambda 表达式 compareStr,用于判断字典中的字符串是否是 s 的子序列auto compareStr = [&](const string& s, const string& dic) -> bool {int i = 0, j = 0; // i 遍历 s,j 遍历 dicwhile (i < s.size() && j < dic.size()) { // 双指针遍历两个字符串if (s[i] == dic[j]) { // 如果字符匹配,移动 dic 的指针++j;}++i; // 始终移动 s 的指针}return j == dic.size(); // 如果 dic 被完全匹配,返回 true};// 对字典进行排序:优先按长度降序排列,如果长度相同则按字典序升序排列sort(dictionary.begin(), dictionary.end(),[](const string& a, const string& b) {return (a.size() == b.size()) ? (a < b) : (a.size() > b.size());});// 遍历排序后的字典,找到第一个符合条件的字符串for (auto str : dictionary) {if (compareStr(s, str)) { // 如果当前字符串是 s 的子序列return str; // 返回该字符串}}// 如果没有找到符合条件的字符串,返回空字符串return "";}
};

普通代码 :

class Solution {
public:// 判断字典中的字符串 dictionary 是否是字符串 s 的子序列bool compareStr(const string& s, const string& dictionary) {int i = 0, j = 0; // i 遍历 s,j 遍历 dictionarywhile (i < s.size() && j < dictionary.size()) { // 双指针遍历两个字符串if (s[i] == dictionary[j]) { // 如果字符匹配,移动 dictionary 的指针++j;}++i; // 始终移动 s 的指针}return j == dictionary.size(); // 如果 dictionary 被完全匹配,返回 true}// 主函数:从字典中找到最长且符合条件的字符串string findLongestWord(string s, vector<string>& dictionary) {// 如果字符串 s 为空,直接返回空字符串(题目保证 s 不为空,此检查可省略)if (s == "") {return "";}// 对字典进行排序:优先按长度降序排列,如果长度相同则按字典序升序排列sort(dictionary.begin(), dictionary.end(),[](const string& a, const string& b) {if (a.size() != b.size()) // 如果长度不同,按长度降序排列return a.size() > b.size();return a < b; // 如果长度相同,按字典序升序排列});// 遍历排序后的字典,找到第一个符合条件的字符串for (auto str : dictionary) {if (compareStr(s, str)) { // 如果当前字符串是 s 的子序列return str; // 返回该字符串}}// 如果没有找到符合条件的字符串,返回空字符串return "";}
};

3、解题思路:

1.判断子序列

这是一个双指针的问题,双指针应用在哪呢?就是用在辅助函数里,来判断某个字符串是否是另一个字符串的子序列,具体方法是使用双指针,分别遍历 s 和目标字符串 dictionary,检查 dictionary是否可以通过删除 s 的某些字符得到。

2. 优化排序

为了方便比较长度和字典序,可以先对字典进行排序:优先按长度降序排列,如果长度相同则按字典序升序排列。

3. 筛选符合条件的字符串:

因为前面已经将字典进行排序,而且字典优先按长度降序排列,如果长度相同则按字典序升序排列。也就是说,第一个找到的字符串就是最符合要求的答案

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

相关文章:

  • 厦门物流网站建设百度电商广告代运营
  • 绍兴高端网站设计百度电脑版网页版入口
  • it程序员需要什么学历seo技术顾问阿亮
  • 适合机械网站的wordpress主题模板百度关键词排名点
  • 哪些网站是专做女性护肤品沧州网站建设推广
  • 有人用axure做网站农村电商平台
  • 视频解析网站怎么做女生seo专员很难吗为什么
  • 网站维护wwwseo免费推广
  • 企业网站的建立网络虚拟社区时对于企业seo搜索引擎优化营销案例
  • 做金融量化的网站如何制作自己的网址
  • 乐山企业品牌网站建设google seo 优化教程
  • 网站建设与制作教程吕磊网络营销专业就业前景
  • 广东重工建设监理有限公司官方网站百度开户联系方式
  • 一级做a爱免费网站爱站工具
  • 公司logo设计价格seo网络优化软件
  • 重庆一品建设集团有限公司网站怎样在网上做推广
  • 摄影网站建设内容短视频精准获客
  • 做免费的视频网站可以赚钱吗推广软件赚钱的平台
  • 精彩网站制作站长工具百科
  • 怎么做网站推广知乎网络做推广广告公司
  • 厦门网络推广建网站建站cms
  • 用ip访问没有备案的网站关键词优化搜索引擎
  • 网站制作 天津天津网络推广公司
  • 包头手机网站建设软文是指什么
  • centos建立wordpress厦门seo怎么做
  • 广州网站建设排名seo教程排名第一
  • 栾川网站建设seo数据是什么
  • 深圳网站seo优化公司网站seo优化外包
  • axure做网站原型教程关键词优化按天计费
  • wps可以做网站吗万网域名购买