字符串的最长严格递增子序列,前后只能相差一个字符。

  1. 直接O(N^2)暴力建图,然后记忆化跑个最长路。
  2. 直接按字符串长度排序,然后求LIS。

code1

class Solution {
public:
vector<int> g[1005];
bool check(string& a,string& b){
int as=a.size();
int bs=b.size();
if(bs!=as+1){
return false;
}
int cnt[26]={0};
for(int i=0;i<as;i++){
cnt[a[i]-'a']++;
}
for(int i=0;i<bs;i++){
cnt[b[i]-'a']--;
}
for(int i=0;i<26;i++){
if(cnt[i]!=0 && cnt[i]!=-1){
return false;
}
}
return true;
}
int dp[1005];
void dfs(int u){
if(dp[u]){
return;
}
int ans=0;
int siz=g[u].size();
for(int i=0;i<siz;i++){
int v=g[u][i];
dfs(v);
ans=max(ans,dp[v]);
}
dp[u]=ans+1;
return;
}
int longestStrChain(vector<string>& words) {
int n=words.size();
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(check(words[i],words[j])){
cout << i <<" " <<j <<"\n";
g[i].push_back(j);
}
}
}
for(int i=0;i<n;i++){
dfs(i);
}
int ans=0;
for(int i=0;i<n;i++){
ans=max(ans,dp[i]);
}
return ans;
}
};

code2

bool cmp(string a,string b){
return a.size()<b.size();
}
class Solution {
public:
bool check(string& a,string& b){
int as=a.size();
int bs=b.size();
if(bs!=as+1){
return false;
}
int cnt[26]={0};
for(int i=0;i<as;i++){
cnt[a[i]-'a']++;
}
for(int i=0;i<bs;i++){
cnt[b[i]-'a']--;
}
for(int i=0;i<26;i++){
if(cnt[i]!=0 && cnt[i]!=-1){
return false;
}
}
return true;
}
int dp[1005];
int longestStrChain(vector<string>& words) {
int n=words.size();
sort(words.begin(),words.end(),cmp);
int ans=0;
for(int i=0;i<n;i++){
dp[i]=1;
}
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(check(words[j],words[i])){
dp[i]=max(dp[i],dp[j]+1);
}
}
ans=max(ans,dp[i]);
}
return ans;
}
};

Leetcode_1048. 最长字符串链的更多相关文章

  1. 使用List把一个长字符串分解成若干个短字符串

    把一个长字符串分解成若干个固定长度的短字符串,由于事先不知道长字符串的长度,以及短字符串的数量,只能使用List. public static void get_list_sbody(String s ...

  2. eclipse处理长字符串拼接快捷方法类

    情景: 你在后台写sql文访问数据库时是不是要这样写 String sql="select a," +"b," +"c " +"f ...

  3. JSP-简单的练习省略显示长字符串

    <%@ page contentType="text/html; charset=gb2312" %> <!-- JSP指令标签 --> <%@ pa ...

  4. newcoder-最长树链-树/gcd

    https://ac.nowcoder.com/acm/problem/13233 链接:https://ac.nowcoder.com/acm/problem/13233来源:牛客网 题目描述 树链 ...

  5. python-原始字符串,长字符串

    一  长字符串 在python中要表示跨行多行的字符串,可以使用较为简单粗暴的表达-----三引号.例如: str = ”’那时我们有梦, 关于文学, 关于爱情, 关于穿越世界的旅行. 如今我们深夜饮 ...

  6. Java & PHP & Javascript 通用 RSA 加密 解密 (长字符串)

    系统与系统的数据交互中,有些敏感数据是不能直接明文传输的,所以在发送数据之前要进行加密,在接收到数据时进行解密处理:然而由于系统与系统之间的开发语言不同. 本次需求是生成二维码是通过java生成,由p ...

  7. C 长字符串换行方法

    C中字符串有时候会出现很长的情况,如果不换行书写查看起来很不方便. 长字符串拆分成多行处理也是C规范的一部分. 方法1. 利用双引号" " ,将长字符串分成多个子串换行,C会自动无 ...

  8. HDU 3336 输出包括从1到len长 字符串前缀的总个数(+DP)

    Sample Input14abab Sample Output6输出包括从1到len长 字符串前缀的总个数abab:包括2个a,2个ab,1个aba,1个abab # include <cst ...

  9. go语言判断末尾不同的长字符串的方法

    判断两种末尾不同的长字符串,在使用正则表达式的基础上,进一步利用好字符串的方法,最后成功对问题进行解决. package utils import ( "io/ioutil" &q ...

随机推荐

  1. 【转载/部分修改】超实用STL——set的入门使用

    本文部分转载自他人博文,少部分自行进行了添改qwq 参考文章:https://blog.csdn.net/chaoyueziji123/article/details/38422211 作者:chao ...

  2. 对Vue为什么不支持IE8的解释之一

    在JavaScript对象中有一个Object.defineProperties(obj, props)方法 该方法主要用来给指定对象添加自定义属性 可以接收两个参数: 第一个参数 要定义或者修改属性 ...

  3. 旅游机票类专业名词---PNR

    PNR: PNR是旅客订座记录,即Passenger Name Record的缩写,它反映了旅客的航程,航班座位占用的数量,及旅客信息.适用民航订座系统. 一个PNR由以下几项组成: 姓名组NM 航段 ...

  4. Python拾遗(2)

    包括Python中的常用数据类型. int 在64位平台上,int类型是64位整数: 从堆上按需申请名为PyIntBlcok的缓存区域存储整数对象 使用固定数组缓存[-5, 257]之间的小数字,只需 ...

  5. Substring(Codeforces-D-拓扑排序)

    D. Substring time limit per test 3 seconds memory limit per test 256 megabytes You are given a graph ...

  6. vmware增加新硬盘无需重启生效

    echo "scsi add-single-device 2 0 2 0" > /proc/scsi/scsi # echo "scsi add-single-de ...

  7. ueditor富文本编辑器——上传图片按钮卡顿,响应慢

    最近负责将公司官网从静态网站改版成动态网站,方便公司推广营销人员修改增加文案,避免官网文案维护过于依赖技术人员.在做后台管理系统时用到了富文本编辑器Ueditor,因为公司有一个阿里云文件资源服务器, ...

  8. 压力测试(六)-阿里云Linux服务器压测接口实战

    1.SpringBoot 接口打包,并用jar包方式部署 简介:用jar包方式在控制台进行启动 打包 mvn package && java -jar target/gs-spring ...

  9. 二叉堆的BuildHeap操作

    优先队列(二叉堆)BuildHeap操作 \(BuildHeap(H)\)操作把\(N\)个关键字作为输入并把它们放入空堆中.显然,这可以使用\(N\)个相继的\(Insert\)操作来完成.由于每个 ...

  10. vue中的自定义分页插件组件

    介绍一下,已经有很多的vue分页的组件了,大家都是大同小易,那么我就结合自身的使用,写出了一片文章 首先在新建一个分页模块 在模块中引入相应的代码,(内有详细的注释) template中 <di ...