Unique characters in each string: Difference between revisions

Added solution for Action!
(Added XPL0 example.)
(Added solution for Action!)
Line 14:
{{Template:Strings}}
<br><br>
 
=={{header|Action!}}==
<lang Action!>DEFINE MAX="128"
CHAR ARRAY uniq(MAX)
 
BYTE FUNC IsUnique(CHAR ARRAY s CHAR c)
BYTE count,i
 
count=0
FOR i=1 TO s(0)
DO
IF s(i)=c THEN
count==+1
IF count>1 THEN
RETURN (0)
FI
FI
OD
IF count=0 THEN
RETURN (0)
FI
RETURN (1)
 
PROC SetUnique(CHAR ARRAY s)
BYTE i,c
 
SetBlock(uniq,MAX,0)
FOR i=1 TO s(0)
DO
c=s(i)
IF IsUnique(s,c) THEN
uniq(c)=1
FI
OD
RETURN
 
PROC CheckUnique(CHAR ARRAY s)
BYTE i
 
FOR i=0 TO MAX-1
DO
IF uniq(i)=1 AND IsUnique(s,i)=0 THEN
uniq(i)=0
FI
OD
RETURN
 
PROC Main()
DEFINE PTR="CARD"
DEFINE CNT="3"
PTR ARRAY l(CNT)
INT i
 
l(0)="1a3c52debeffd"
l(1)="2b6178c97a938stf"
l(2)="3ycxdb1fgxa2yz"
 
SetUnique(l(0))
FOR i=1 TO CNT-1
DO
CheckUnique(l(i))
OD
FOR i=0 TO MAX-1
DO
IF uniq(i) THEN
Put(i) Put(32)
FI
OD
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Unique_characters_in_each_string.png Screenshot from Atari 8-bit computer]
<pre>
1 2 3 a b c
</pre>
 
=={{header|Ada}}==
Anonymous user