LeetCode 522. 最长特殊序列 II

1. 题目

给定字符串列表,你需要从它们中找出最长的特殊序列。
最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。

子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。

输入将是一个字符串列表,输出是最长特殊序列的长度。如果最长特殊序列不存在,返回 -1 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-uncommon-subsequence-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 类似题目:LeetCode 521. 最长特殊序列 Ⅰ

题目意思是,找一个最长的字符,且这个字符不能从别人那里顺次挑出(别人的子序,可以隔着字符,不是子串,子串必须连续)
所以有重复的字符串不是答案,从不重复的字符串中,从最长的开始找(先排序),检查这个最长的字符是不是原字符串集合中的字符串的子序。
在这里插入图片描述

class Solution {
public:int findLUSlength(vector<string>& strs) {sort(strs.begin(), strs.end(),[&](auto a, auto b){return a.size() > b.size();//按长度排序});map<string,int> m;for(auto it = strs.begin(); it != strs.end(); ++it)m[*it]++;vector<string> uniq;for(auto it = m.begin(); it != m.end(); ++it){if(it->second == 1)//次数一次的收集起来uniq.push_back(it->first);}sort(uniq.begin(), uniq.end(),[&](auto a, auto b){return a.size() > b.size();//按长度排序});for(auto it = uniq.begin(); it != uniq.end(); ++it){if(!subSeq(strs,*it))return it->size();}return -1;}bool subSeq(vector<string> &strs, string& s){int len = s.size(), i, j;bool flag;for(auto it = strs.begin(); *it != s; ++it){  //str是从长到短的flag = true;for(i = 0,j = 0; i < len; ++i,++j){while(j < it->size() && (*it)[j] != s[i])j++;//长字符串中的字符不等if(j == it->size() && i < len){flag = false;//不是子序break;}else if(i == len-1 && j <= it->size()){flag = true;break;}}if(flag)//是子序break;}return flag;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 - 计算机工程 | 大规模企业级知识图谱实践综述

本文转载自公众号&#xff1a;计算机工程。大规模企业级知识图谱实践综述王昊奋, 丁军, 胡芳槐, 王鑫中文摘要&#xff1a;近年来&#xff0c;知识图谱及其相关技术得到快速发展&#xff0c;并被广泛应用于工业界各种认知智能场景中。在简述知识图谱相关研究的基础上&#xff0…

python实现拆分、合并、删除pdf

PDF&#xff08;Portable Document Format&#xff09;&#xff0c;中文名称便携文档格式是我们经常会接触到的一种文件格式&#xff0c;文献、文档…很多都是PDF格式。它以格式稳定的优势&#xff0c;使得我们在打印、分享、传输过程中能够最优的保持原有色彩和格式。PDF是以P…

Android官方开发文档Training系列课程中文版:手势处理之拖拽或缩放

原文地址&#xff1a;https://developer.android.com/training/gestures/scale.html 这节课主要学习如何使用触摸手势来拖动、放大屏幕上的对象。 拖动对象 如果你的重点在Android 3.0以上的版本&#xff0c;那么你可以使用内置的拖拽事件监听器View.OnDragListener。 触摸手…

2021年了,对话系统凉透了吗?

文 | 兔子酱编 | 夕小瑶大家好&#xff0c;我是可盐可甜的兔子酱&#xff0c;一枚卖萌屋的资深潜水小编&#xff0c;今天终于有了自己的第一篇文章&#xff0c;希望耗时一周撰写的本文能让大家有所收获~这篇文章&#xff0c;算是对自己在头部大厂2年算法岗炼丹经历的一个经验浓…

前端可用性保障实践

本文基于已发表在Infoq的“美团收银台前端可用性保障实践”一文编辑而成。 一般可用性都是说后端服务的可用性&#xff0c;都说我们的服务可用性到了几个9&#xff0c;很少有人把可用性放到前端来。其实对于任何一个有UI交互流程的业务&#xff0c;都会有前端服务可用性&#x…

LeetCode 762. 二进制表示中质数个计算置位

1. 题目 给定两个整数 L 和 R &#xff0c;找到闭区间 [L, R] 范围内&#xff0c;计算置位位数为质数的整数个数。 &#xff08;注意&#xff0c;计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有&#xff0c;1 不是质数。&#xff09; …

报名通道开启 | 顶会 ICLR 2021:医疗对话生成与自动诊断国际竞赛,邀你来战!...

ICLR&#xff0c;2013 年由深度学习三巨头中的Yoshua Bengio 和 Yann LeCun 牵头创办&#xff0c;已受到研究者和开发者的广泛认可&#xff0c;是当之无愧的深度学习领域顶级会议。今年&#xff0c;由中山大学、加利福尼亚大学圣迭戈分校和腾讯天衍实验室等组织联合举办的医疗对…

论文浅尝 | 图神经网络的对抗攻击和防御相关文献集

本文转载自公众号&#xff1a;专知。作者&#xff1a;Wei Jin。导读&#xff1a;本资源整理了关于图形数据或GNN(图形神经网络)上的对抗攻击和防御的论文链接。并对其进行分类。目录Survey PapersAttack PapersDefense PapersCertified Robustness Papers地址连接&#xff1a;h…

Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理

原文地址&#xff1a;https://developer.android.com/training/gestures/viewgroup.html 在ViewGroup中处理触摸事件要格外小心&#xff0c;因为在ViewGroup中有很多子View&#xff0c;而这些子View对于不同的触摸事件来说是不同的目标。要确保每个View都正确的接收了相应的触…

李宏毅《机器学习》作业班+带打比赛

人工智能来势汹汹&#xff0c;学习人工智能该从哪里开始呢&#xff1f;人工智能的学习路径又是怎样的&#xff1f;须知入门人工智能第一步就是机器学习。但是&#xff0c;在上千份同学的学习反馈中&#xff0c;我们发现了2个人工智能学习领域的痛难点&#xff1a;1、课程偏理论…

mysql查询时间段内的数据

mysql查询时间段内的数据 -- 今天 select fullName,addedTime from t_user where to_days(addedTime) < to_days(now()); -- 昨天 select fullName,addedTime from t_user where to_days(NOW()) - TO_DAYS(addedTime) < 1; -- 近7天 select fullName,addedTime…

论文浅尝 – KDD2020 | 使用图对比编码的图神经网络预训练模型

论文笔记整理&#xff1a;陈名杨&#xff0c;浙江大学在读博士生&#xff0c;研究方向为知识图谱表示学习。图表示学习是一个当前关注度较高的领域&#xff0c;并且有许多真实的应用。然而当前的很多图表示学习方法都是对一个领域或者某一个图训练一个模型&#xff0c;也就是说…

LeetCode 575. 分糖果(set集合去重)

1. 题目 给定一个偶数长度的数组&#xff0c;其中不同的数字代表着不同种类的糖果&#xff0c;每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。 输入: candies [1,1,2,2,3,3] 输出: 3 解析: 一共有三种种类的糖…

Android官方开发文档Training系列课程中文版:键盘输入处理之指定输入的类型

原文地址&#xff1a;http://android.xsoftlab.net/training/keyboard-input/index.html 引言 在文本框接收到焦点时&#xff0c;Android系统会在屏幕上显示一个软键盘。为了提供良好的用户体验&#xff0c;你可以指定相关输入类型的特性&#xff0c;以及输入法应当如何展现。…

美团 R 语言数据运营实战

一、引言 近年来&#xff0c;随着分布式数据处理技术的不断革新&#xff0c;Hive、Spark、Kylin、Impala、Presto 等工具不断推陈出新&#xff0c;对大数据集合的计算和存储成为现实&#xff0c;数据仓库/商业分析部门日益成为各类企业和机构的标配。在这种背景下&#xff0c;是…

Android官方开发文档Training系列课程中文版:键盘输入处理之控制输入法的显示方式

原文地址&#xff1a;http://android.xsoftlab.net/training/keyboard-input/visibility.html 当输入的焦点进入或者离开文本框时&#xff0c;Android会适时的显示或隐藏输入法。系统还会决定UI及文本框如何出现在输入法的上方。比如&#xff0c;当垂直方向上的可用空间非常紧…

python用schedule模块实现定时任务

python用schedule模块实现定时任务 import schedule import timedef test():print("Im working...") def test2(): print("Im working... in job2")# 每10分钟执行一次job函数 schedule.every(10).minutes.do(test) # 每10秒执行一次job函数 schedule.…

天天说常识推理,究竟常识是什么?

文 | 花小花Posy写这篇文章的时候&#xff0c;我去搜了搜常识的例子。“睁开眼睛打喷嚏是不可能的。&#xff08;还真没留意。&#xff09;““北极熊是左撇子。“”长颈鹿没办法咳嗽。”呃&#xff1f;好吧&#xff0c;我需要补一补自己的常识。那么这些所谓的“常识”真的是常…

论文笔记 | Counterfactual Samples Synthesizing for Robust VQA

论文笔记整理&#xff1a;窦春柳&#xff0c;天津大学硕士。来源&#xff1a;CVPR 2020链接&#xff1a;https://openaccess.thecvf.com/content_CVPR_2020/papers/Chen_Counterfactual_Samples_Synthesizing_for_Robust_Visual_Question_Answering_CVPR_2020_paper.pdf动机当今…

Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

背景 对于Android系统来说&#xff0c;消息传递是最基本的组件&#xff0c;每一个App内的不同页面&#xff0c;不同组件都在进行消息传递。消息传递既可以用于Android四大组件之间的通信&#xff0c;也可用于异步线程和主线程之间的通信。对于Android开发者来说&#xff0c;经常…