国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郓城县| 巴林左旗| 晋江市| 建平县| 瓦房店市| 健康| 定陶县| 台前县| 济阳县| 华宁县| 金坛市| 皋兰县| 七台河市| 景东| 江都市| 饶河县| 光山县| 思南县| 昭苏县| 星座| 乐陵市| 三明市| 铁岭县| 错那县| 祁东县| 肥东县| 崇明县| 班戈县| 灯塔市| 兰溪市| 阳朔县| 观塘区| 汶上县| 蓬安县| 泸水县| 焦作市| 盘锦市| 大余县| 江口县| 梧州市| 寻甸|