Words from neighbour ones: Difference between revisions
Content added Content deleted
(Added Java solution) |
MaiconSoft (talk | contribs) (Added Delphi example) |
||
Line 243: | Line 243: | ||
24. transpose |
24. transpose |
||
</pre> |
</pre> |
||
=={{header|Delphi}}== |
|||
{{libheader| System.SysUtils}} |
|||
{{libheader| System.Classes}} |
|||
{{Trans|Java}} |
|||
<lang Delphi> |
|||
program Words_from_neighbour_ones; |
|||
{$APPTYPE CONSOLE} |
|||
uses |
|||
System.SysUtils, |
|||
System.Classes; |
|||
function GetWords(minLength: Integer = 1): TStringList; |
|||
var |
|||
i: Integer; |
|||
begin |
|||
Result := TStringList.create; |
|||
Result.LoadFromFile('Unixdict.txt'); |
|||
with Result do |
|||
for i := Count - 1 downto 0 do |
|||
if Strings[i].Length < minLength then |
|||
Delete(i); |
|||
Result.Sort; |
|||
end; |
|||
var |
|||
Words: TStringList; |
|||
const |
|||
minLength = 9; |
|||
begin |
|||
Words := GetWords(minLength); |
|||
var previousWord := ''; |
|||
var count := 0; |
|||
var n := Words.Count; |
|||
for var i := 0 to n - minLength do |
|||
begin |
|||
var W := ''; |
|||
for var j := 0 to minLength - 1 do |
|||
W := W + Words[i + j][j + 1]; |
|||
if W.Equals(previousWord) then |
|||
Continue; |
|||
if Words.IndexOf(W) >= 0 then |
|||
begin |
|||
inc(count); |
|||
writeln(count: 2, '. ', W); |
|||
end; |
|||
previousWord := W; |
|||
end; |
|||
Words.Free; |
|||
readln; |
|||
end.</lang> |
|||
{{out}} |
|||
<pre> 1. applicate |
|||
2. architect |
|||
3. astronomy |
|||
4. christine |
|||
5. christoph |
|||
6. committee |
|||
7. composite |
|||
8. constrict |
|||
9. construct |
|||
10. different |
|||
11. extensive |
|||
12. greenwood |
|||
13. implement |
|||
14. improvise |
|||
15. intercept |
|||
16. interpret |
|||
17. interrupt |
|||
18. philosoph |
|||
19. prescript |
|||
20. receptive |
|||
21. telephone |
|||
22. transcend |
|||
23. transport |
|||
24. transpose</pre> |
|||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |