Longest substrings without repeating characters: Difference between revisions
Longest substrings without repeating characters (view source)
Revision as of 09:14, 27 May 2021
, 3 years agoAdded Wren
No edit summary |
(Added Wren) |
||
Line 64:
len = 5 : cybdf
done...
</pre>
=={{header|Wren}}==
<lang ecmascript>import "/seq" for Lst
var substrings = Fn.new { |s|
var n = s.count
if (n == 0) return [""]
var ss = []
for (i in 0...n) {
for (len in 1..n-i) ss.add(s[i...i+len])
}
return ss
}
System.print("The longest substring(s) of the following without repeating characters are:\n")
var strs = ["xyzyabcybdfd", "xyzyab", "zzzzz", "a", "", ]
for (s in strs) {
var longest = []
var longestLen = 0
for (ss in substrings.call(s)) {
if (Lst.distinct(ss.toList).count == ss.count) {
if (ss.count >= longestLen) {
if (ss.count > longestLen) {
longest.clear()
longestLen = ss.count
}
longest.add(ss.join())
}
}
}
longest = Lst.distinct(longest)
System.print("String = '%(s)'")
System.print(longest)
System.print("Length = %(longest[0].count)\n")
}</lang>
{{out}}
<pre>
The longest substring(s) of the following without repeating characters are:
String = 'xyzyabcybdfd'
[zyabc, cybdf]
Length = 5
String = 'xyzyab'
[zyab]
Length = 4
String = 'zzzzz'
[z]
Length = 1
String = 'a'
[a]
Length = 1
String = ''
[]
Length = 0
</pre>
|