时间:2021-05-23
求字符串中最大的递增子序列
数据库环境:SQL SERVER 2005
如题,求字符串“abcbklmnodfghijkmer”中最大的递增子序列。这个字符串有点特别,
只由26个小写字母a-z组成。
大概思路如下:
1.将字符串转到一列存储,并生成行号
2.设置一个递增计数器列,默认为1,比较上下行的字符,如果在字典中的顺序是递增,
则计数器加1,否则,计数器置1
3.找出计数器最大的数及对应的行号,根据这2个数截取字符串
思路有了,下面直接贴代码
DECLARE @vtext VARCHAR(255)SET @vtext = 'abcbklmnodfghijkmer'WITH x0 AS ( SELECT number AS id , SUBSTRING(@vtext, number, 1) AS letter FROM master.dbo.spt_values WHERE type = 'P' AND number <= LEN(@vtext) AND number >= 1 ), x1 ( id, letter, clen ) AS ( SELECT id , letter , 1 AS clen FROM x0 WHERE id = 1 UNION ALL SELECT x0.id , x0.letter , CASE WHEN x1.letter <= x0.letter THEN x1.clen + 1 ELSE 1 END AS clen FROM x0 , x1 WHERE x0.id = x1.id + 1 ) SELECT SUBSTRING(@vtext, start, sublen) AS 最大子序列 FROM ( SELECT id , clen , MAX(clen) OVER ( ) AS maxclen , id - MAX(clen) OVER ( ) + 1 AS start , MAX(clen) OVER ( ) AS sublen FROM x1 ) t WHERE clen = maxclen求出的最大子序列是
通过以上的思路和代码,希望可以对大家有所启迪和帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
给定一个整数序列,计算其中的最长递增子序列的长度,这是一个典型的动态规划的算法。比如8个整数的序列186186150200160130197200,最长递增子序
本文实例展示了C语言实现最长递增子序列问题的解决方法。分享给大家供大家参考。具体方法如下:问题描述:给定一个序列,找出其最长递增子序列长度。比如输入1375输出
问题描述:输入一个字符串,输出该字符串中最大对称子串的长度。例如输入字符串:“avvbeeb”,该字符串中最长的子字符串是“beeb”,长度为4,因而输出为4。
Python递增子序列的更大值总和Python递增子序列的更大值总和代码如下所示:arr=[1,101,2,3,100,4,5]msis=[elemforele
在Python中最重要的数据类型包括字符串、列表、元组和字典等.该篇主要讲述Python的字符串基础知识.一.字符串基础字符串指一有序的字符序列集合,用单引号、