Rep-string: Difference between revisions
Content added Content deleted
(→{{header|C}}: code) |
(Add Swift) |
||
Line 2,924: | Line 2,924: | ||
0𝟘 |
0𝟘 |
||
1 (no repeat)</pre> |
1 (no repeat)</pre> |
||
=={{header|Swift}}== |
|||
<lang swift>import Foundation |
|||
func repString(_ input: String) -> [String] { |
|||
return (1..<(1 + input.count / 2)).compactMap({x -> String? in |
|||
let i = input.index(input.startIndex, offsetBy: x) |
|||
return input.hasPrefix(input[i...]) ? String(input.prefix(x)) : nil |
|||
}) |
|||
} |
|||
let testCases = """ |
|||
1001110011 |
|||
1110111011 |
|||
0010010010 |
|||
1010101010 |
|||
1111111111 |
|||
0100101101 |
|||
0100100 |
|||
101 |
|||
11 |
|||
00 |
|||
1 |
|||
""".components(separatedBy: "\n") |
|||
for testCase in testCases { |
|||
print("\(testCase) has reps: \(repString(testCase))") |
|||
}</lang> |
|||
{{out}} |
|||
<pre>1001110011 has reps: ["10011"] |
|||
1110111011 has reps: ["1110"] |
|||
0010010010 has reps: ["001"] |
|||
1010101010 has reps: ["10", "1010"] |
|||
1111111111 has reps: ["1", "11", "111", "1111", "11111"] |
|||
0100101101 has reps: [] |
|||
0100100 has reps: ["010"] |
|||
101 has reps: [] |
|||
11 has reps: ["1"] |
|||
00 has reps: ["0"] |
|||
1 has reps: []</pre> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |