Nugroho's blog.: Digit Word.

## Monday, May 15, 2017

### Digit Word.

A digit word is a word where, after possibly removing some letters, you are left with one of the single digits:
ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT or NINE.
For example:
• BOUNCE and ANNOUNCE are digit words, since they contain the digit ONE.
• ENCODE is not a digit word, even though it contains an O, N and E, since they are not in order.

Here's my code on Delphi

```unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure proses;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
digit,cdigit:array[1..9] of string;

implementation

{\$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Text:='';
digit[1]:='one';
digit[2]:='two';
digit[3]:='three';
digit[4]:='four';
digit[5]:='five';
digit[6]:='six';
digit[7]:='seven';
digit[8]:='eight';
digit[9]:='nine';
end;

procedure tform1.proses;
var s:string;
i,j,k,n:integer;
c:array[1..9]of integer;
ck:array[1..9]of boolean;
begin
memo1.Text:='';
s:=edit1.Text;
memo1.Lines.Append(s);
memo1.Lines.Append('');
n:=length(s);
for i:=1 to 9 do begin
cdigit[i]:='';
c[i]:=1;
ck[i]:=true;
end;

//looking for char
for i:=1 to 9 do begin
for j:=1 to length(digit[i]) do begin
if ck[i]=true then begin
ck[i]:=false;
for k:=c[i] to n  do begin
if s[k]=digit[i][j] then begin
ck[i]:=true;
cdigit[i]:=cdigit[i]+s[k];
c[i]:=c[i]+1;
break;
end;
end;
end;
end;
end;
//compare
for i:=1 to 9 do begin
memo1.Lines.Append(cdigit[i]);
end;

end;
procedure TForm1.Button1Click(Sender: TObject);
begin
proses;
end;

end.

```
.