Determine if a string has all unique characters: Difference between revisions
Determine if a string has all unique characters (view source)
Revision as of 16:54, 30 January 2020
, 4 years agoAdded Sidef
No edit summary |
(Added Sidef) |
||
Line 2,146:
"π ππ‘π¦π¬π³ππ‘" (size 8) has duplicate char π‘ (0x1f421) on 2 and 7.
</pre>
=={{header|Sidef}}==
<lang ruby>func index_duplicates(str) {
gather {
for k,v in (str.chars.kv) {
var i = str.index(v, k+1)
take([k, i]) if (i != -1)
}
}
}
var strings = [
"", ".", "abcABC", "XYZ ZYX",
"1234567890ABCDEFGHIJKLMN0PQRSTUVWXYZ",
"01234567890ABCDEFGHIJKLMN0PQRSTUVWXYZ0X",
"hΓ©tΓ©rogΓ©nΓ©itΓ©", "ππππ", "ππππππ",
"π ππ‘π¦π¬π³ππ‘"
]
strings.each {|str|
print "\n'#{str}' (size: #{str.len}) "
var dups = index_duplicates(str)
say "has duplicated characters:" if dups
for i,j in (dups) {
say "#{str[i]} (#{'%#x' % str[i].ord}) in positions: #{i}, #{j}"
}
say "has no duplicates." if !dups
}</lang>
{{out}}
<pre>
'' (size: 0) has no duplicates.
'.' (size: 1) has no duplicates.
'abcABC' (size: 6) has no duplicates.
'XYZ ZYX' (size: 7) has duplicated characters:
X (0x58) in positions: 0, 6
Y (0x59) in positions: 1, 5
Z (0x5a) in positions: 2, 4
'1234567890ABCDEFGHIJKLMN0PQRSTUVWXYZ' (size: 36) has duplicated characters:
0 (0x30) in positions: 9, 24
'01234567890ABCDEFGHIJKLMN0PQRSTUVWXYZ0X' (size: 39) has duplicated characters:
0 (0x30) in positions: 0, 10
0 (0x30) in positions: 10, 25
0 (0x30) in positions: 25, 37
X (0x58) in positions: 34, 38
'hΓ©tΓ©rogΓ©nΓ©itΓ©' (size: 13) has duplicated characters:
Γ© (0xe9) in positions: 1, 3
t (0x74) in positions: 2, 11
Γ© (0xe9) in positions: 3, 7
Γ© (0xe9) in positions: 7, 9
Γ© (0xe9) in positions: 9, 12
'ππππ' (size: 4) has no duplicates.
'ππππππ' (size: 6) has duplicated characters:
π (0x1f60d) in positions: 0, 4
π (0x1f64c) in positions: 2, 5
'π ππ‘π¦π¬π³ππ‘' (size: 8) has duplicated characters:
π‘ (0x1f421) in positions: 2, 7
</pre>
=={{header|Tcl}}==
<lang tcl>package require Tcl 8.6 ; # For binary encode
Line 2,197 βΆ 2,263:
--> Character 'Γ©' (hex: 0xe9) reappears at indexes: 1 3.
</pre>
=={{header|XPL0}}==
<lang XPL0>include xpllib; \contains StrLen function
|