字串本身重複字元的檢查辦法
我們知道,要拼接一個字元不重複的字串比較方便,只要用類似下面的辦法即可:
數字不重複(9位)拼接辦法:
select replace(sys_connect_by_path(l, ','), ',')
from (select level l from dual connect by rownum <= 9)
where level = 9
connect by nocycle prior l <> l
但要反過來說,要校驗字串中是否存在重複的字元(不管連續的還是不連續的),好像還沒有一個好的辦法來實現。
今天一個同事來問我這個問題,我想起來原來也考慮過這個問題,但一直沒有解決。這次考慮了下,搞了一個解決方案出來(辦法不是很巧妙,因為在原理上,還是用distinct這個辦法來實現的)。
先貼出來,待以後看下是否有更好的解決辦法:
create table tmp_strlen9 as
select dbms_random.string('l',9) str from dual connect by rownum <= 100000;
select *
from tmp_strlen9 a,
table(cast(multiset (select count(distinct substr(str, rownum, 1))
from dual
connect by rownum <= length(str)) as
sys.odcinumberlist)) b
where b.column_value <> 9
查了下,效率也還可以。10w資料篩選1.7s count出來。
數字不重複(9位)拼接辦法:
select replace(sys_connect_by_path(l, ','), ',')
from (select level l from dual connect by rownum <= 9)
where level = 9
connect by nocycle prior l <> l
但要反過來說,要校驗字串中是否存在重複的字元(不管連續的還是不連續的),好像還沒有一個好的辦法來實現。
今天一個同事來問我這個問題,我想起來原來也考慮過這個問題,但一直沒有解決。這次考慮了下,搞了一個解決方案出來(辦法不是很巧妙,因為在原理上,還是用distinct這個辦法來實現的)。
先貼出來,待以後看下是否有更好的解決辦法:
create table tmp_strlen9 as
select dbms_random.string('l',9) str from dual connect by rownum <= 100000;
select *
from tmp_strlen9 a,
table(cast(multiset (select count(distinct substr(str, rownum, 1))
from dual
connect by rownum <= length(str)) as
sys.odcinumberlist)) b
where b.column_value <> 9
查了下,效率也還可以。10w資料篩選1.7s count出來。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-1872429/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript 刪除字串重複字元JavaScript字串字元
- 最長不含重複字元的子字串字元字串
- 查詢字串中第一個非重複字元的3種方法字串字元
- JavaScript刪除字串中重複字元JavaScript字串字元
- 獲取字串中重複次數最多的字元字串字元
- leetcode無重複字元的最長字串 python實現LeetCode字元字串Python
- 求字串中不含重複字元的最長子串字串字元
- JZ-073-最長不含重複字元的子字串字元字串
- 輸入一段字串,去除字串中重複的字元,並輸出字串字元
- Leetcode[字串] 3. 無重複字元的最長子串 10行極簡寫法!LeetCode字串字元
- 前端 JavaScript 獲取字串中重複次數最多的字元前端JavaScript字串字元
- 劍指 Offer 48. 最長不含重複字元的子字串字元字串
- 重複的子字串字串
- leetcode 劍指 Offer 48. 最長不含重複字元的子字串LeetCode字元字串
- 寫個方法,找出指定字串中重複最多的字元及其長度字串字元
- 第五章 字串專題 ---------------- 5.1 題解:判斷字串有無重複字元字串字元
- 面試有關字串中字元出現重複字元的面試問題,這裡都有了面試字串字元
- SAP SU53許可權檢查時不能複製的解決辦法
- 檢查陣列中是否有重複項陣列
- JavaScript 刪除重複字元JavaScript字元
- 重複列印字串字串
- 無重複字元的最長子串字元
- 20241108,LeetCode 每日一題,用 Go 計算字串中最長無重複字元LeetCode每日一題Go字串字元
- 第三季6.5排序(單個字串不包含重複字元)排序字串字元
- 無重複字串的排列組合字串
- LeetCode-459-重複的子字串LeetCode字串
- Leet Code 3. Longest Substring Without Repeating Characters (最長的沒有重複字元的子字串)字元字串
- 無重複字元的最長子串問題 (移動視窗法求解)字元
- 3 無重複字元的最長子串字元
- LeetCode——無重複字元的最長子串LeetCode字元
- java無重複字元的最長子串Java字元
- LeetCode133:給定一個字串,找出最長的不具有重複字元的子串的長度。例如,“abcabcbb”不具有重複字元的最長子串是“abc”,長度為3。對於“bbbbb”,最長的不具有重複字元的子串是LeetCode字串字元
- 資訊學奧賽複賽複習01-CSP-J2019-01-字元、字元陣列、字串、string、字串讀取字元陣列字串
- 正規表示式去除連續重複的字元字元
- leetcode 之無重複字元的最長子串LeetCode字元
- 【LeetCode】3 無重複字元的最長子串LeetCode字元
- 去除重複字母(不同字元的最小序列)問題字元
- 3. 無重複字元的最長子串字元
- jQuery裡的silidetoggle方法不停重複動畫效果的解決辦法jQueryIDE動畫