From: <and...@us...> - 2013-09-10 10:23:39
|
Revision: 4105 http://sourceforge.net/p/dl-learner/code/4105 Author: andremelo Date: 2013-09-10 10:23:36 +0000 (Tue, 10 Sep 2013) Log Message: ----------- Simplifying getLongestMatch method Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/utilities/datastructures/PrefixTrie.java Modified: trunk/components-core/src/main/java/org/dllearner/utilities/datastructures/PrefixTrie.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/utilities/datastructures/PrefixTrie.java 2013-09-09 11:21:51 UTC (rev 4104) +++ trunk/components-core/src/main/java/org/dllearner/utilities/datastructures/PrefixTrie.java 2013-09-10 10:23:36 UTC (rev 4105) @@ -119,26 +119,25 @@ } public CharSequence getLongestMatch(CharSequence s) { - Node<T> deepestWithValue = root; Node<T> current = root; int i; + int end = 0; for (i = 0; i < s.length(); i++) { int nodeIndex = s.charAt(i) - rangeOffset; - if (nodeIndex < 0 || rangeSize <= nodeIndex) { + if (nodeIndex < 0 || rangeSize <= nodeIndex) return null; - } + current = current.next[nodeIndex]; - if (current == null) { + if (current == null) break; - } - if (current.value != null) { - deepestWithValue = current; - } + + if (current.value != null) + end = i; } - if (i<=1 || deepestWithValue==root || deepestWithValue.value==null) + if (end==0) return null; - else - return s.subSequence(0, i - 1); + else + return s.subSequence(0, end+1); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |