国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

求字符串中最大的遞增子序列

2024-07-21 02:46:24
字體:
來源:轉載
供稿:網友
求字符串中最大的遞增子序列

數據庫環境: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

求出的最大子序列是

(本文完)


上一篇:SQL生成一柱雙色球

下一篇:database

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 左云县| 屏山县| 湟源县| 博客| 平泉县| 柘荣县| 含山县| 仲巴县| 齐河县| 偏关县| 霍林郭勒市| 阳高县| 新营市| 凌海市| 普陀区| 宝坻区| 灵寿县| 马尔康县| 徐闻县| 沾化县| 剑河县| 清流县| 台东市| 武城县| 沙坪坝区| 宜昌市| 墨玉县| 金乡县| 五寨县| 丹东市| 和顺县| 马鞍山市| 龙里县| 叙永县| 辉南县| 察隅县| 桂平市| 毕节市| 武鸣县| 黄陵县| 马边|