簡體   English   中英

Java正則表達式的時間復雜度

[英]time complexity of regular expression in java

我用正則表達式來查找字符串重復字符串寫了下面一個java s 現在,我嘗試找到它的復雜性,如果有人知道它的復雜性,請告訴我。

           String s = "ABCABCAAAABBBBCCAAABCGABCABC";

           Pattern pattern = Pattern.compile("(?:([ABC])(?!\\1)([ABC])\\1\\2)+");
           Matcher matcher = pattern.matcher(s);

           while (matcher.find()) {
              System.out.print("FOUND");
           }

正則表達式可以/由有限狀態機實現。 因此,狀態機具有一些固定數量的狀態以及這些狀態之間的固定最大轉移次數(T)。

對於每個字符,都會進行過渡,直到被拒絕或接受為止。

所以您有O(String.length()* T)或O(String.length()),因為T是一個常數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM