Determine if a string is collapsible: Difference between revisions

→‎{{header|Vlang}}: Fixed emoji problem.
m (→‎{{header|Vlang}}: Improve. Does not appear to have collapsed the emoji string)
(→‎{{header|Vlang}}: Fixed emoji problem.)
Line 3,684:
 
=={{header|Vlang}}==
{{improve|Vlang|Does not appear to have actually collapsed the emoji string}}
{{trans|Go}}
<lang vlang>// Returns collapsed string, original and new lengths in
// unicode code points (not normalized).
fn collapse(s string) (string, int, int) {
mut r := s.runes()
le, mut del := r.len, 0
for i := le - 2; i >= 0; i-- {
if r[i] == r[i+1] {
r.delete(i)
r = r[..i]+r[i+1..]
del++
}
Line 3,701 ⟶ 3,700:
}
r = r[..le-del]
return r.string(), le, r.len
}
Line 3,749 ⟶ 3,748:
collapsed: length = 7, string = «««ardvark»»»
 
original : length = 32 8, string = «««😍😀🙌💃😍😍😍🙌»»»
collapsed: length = 32 6, string = «««😍😀🙌💃😍😍😍🙌😍😀🙌💃😍🙌»»»
</pre>
 
9,479

edits