最长特殊序列 II
class Solution {
boolean containsSub(String s,String p){
int i,j;
for(i=0,j=0;i<p.length()&&j<s.length();j++)
if(s.charAt(j)==p.charAt(i))
i++;
if(i>=p.length())return true;
return false;
}
void removeStr(String p,LinkedList<String>list){
if(list.contains(p)){
String s="";
for(int i=0;i<list.size();i++){
s=list.get(i);
if(s.length()<p.length()&&containsSub(p,s)){
removeStr(s,list);
}
}
list.remove(p);
}
}
public int findLUSlength(String[] strs) {
int n=strs.length;
HashMap<String,Integer>map=new HashMap<>();
for(String s:strs)
if(map.containsKey(s))
map.replace(s, map.get(s)+1);
else
map.put(s, 1);
LinkedList<String>list=new LinkedList<>();
for(String s:map.keySet())
list.addFirst(s);
list.sort(new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return o2.length()-o1.length();
}
});
int last=list.size(),i=0;
while(i<list.size()){
if(map.get(list.get(i))>1)
removeStr(list.get(i),list);
else
i++;
if(last==list.size())break;
else last=list.size();
}
if(list.size()==0)return -1;
return list.getFirst().length();
}
}
坑:判断包含关系和递归删除
最长特殊序列 II的更多相关文章
- Leetcode 522.最长特殊序列II
最长特殊序列II 给定字符串列表,你需要从它们中找出最长的特殊序列.最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些字符实现,但 ...
- Java实现 LeetCode 522 最长特殊序列 II(查找最长的非子序列的长度)
522. 最长特殊序列 II 给定字符串列表,你需要从它们中找出最长的特殊序列.最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些 ...
- [Swift]LeetCode522. 最长特殊序列 II | Longest Uncommon Subsequence II
Given a list of strings, you need to find the longest uncommon subsequence among them. The longest u ...
- 522 Longest Uncommon Subsequence II 最长特殊序列 II
详见:https://leetcode.com/problems/longest-uncommon-subsequence-ii/description/ C++: 方法一: class Soluti ...
- [LeetCode] 298. Binary Tree Longest Consecutive Sequence 二叉树最长连续序列
Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...
- 九度oj题目1342:寻找最长合法括号序列II
题目1342:寻找最长合法括号序列II(25分) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:886 解决:361 题目描述: 假如给你一个由’(‘和’)’组成的一个随机的括号序列,当然 ...
- [LeetCode] Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之二
Given a binary tree, you need to find the length of Longest Consecutive Path in Binary Tree. Especia ...
- [LeetCode] 549. Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之 II
Given a binary tree, you need to find the length of Longest Consecutive Path in Binary Tree. Especia ...
- P1091 合唱队形 DP 最长升序列维护
题目描述 NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K,他 ...
随机推荐
- LINUX——LVM逻辑卷管理
LVM: logical volumes manager LVM逻辑卷部署 物理卷—>卷组—>逻辑卷 第一步:关机添加磁盘:两个磁盘可以构成一个磁盘组. 第二步:查看磁盘 # ls /de ...
- Nachos-Lab1-完善线程机制
Nachos是什么 Nachos (Not Another Completely Heuristic Operating System),是一个教学用操作系统,提供了操作系统框架: 线程 中断 虚拟内 ...
- 洛谷[Luogu] 普及村总结
总结 简单的模拟 交叉模拟 排序 排序EX
- 151-PHP nl2br函数(二)
<?php $str="h\nt\nm\nl"; //定义一个多处换行的字串 echo "未处理前的输出形式:<br />{$str}"; $ ...
- SignalR实现页面实时监控
1.页面截图
- Android Studio真机调试安装以后打开闪退,打包APK再安装正常打开没有问题
一直真机调试都没有问题, 但是有一次开始,真机调试正常安装没有问题,但是一打开就崩溃了一眨眼间就像被光闪了一下的那种. oppoR11调试会这样,但是用魅族试过没有问题, 报错出现过Android S ...
- hdu 1950 Bridging signals 求最长子序列 ( 二分模板 )
Bridging signals Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- C# Stream篇(四) -- FileStream
FileStream 目录: 如何去理解FileStream? FileStream的重要性 FileStream常用构造函数(重要) 非托管参数SafeFileHandle简单介绍 FileStre ...
- 第十八篇 admin组件
admin组件 admin组件使用 admin源码解析 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以 ...
- Python量化交易的简单介绍
Python只是一门技术. 一.量化交易的发展 1.国外量化金融领域发展日趋成熟. 2.近几年量化交易在国内掀起热潮. 3.Python作为量化交易的编译语言. 二.什么是量化交易 1.利用计算机强大 ...