summaryrefslogtreecommitdiffstats
path: root/SUBS.rs
diff options
context:
space:
mode:
Diffstat (limited to 'SUBS.rs')
-rw-r--r--SUBS.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/SUBS.rs b/SUBS.rs
new file mode 100644
index 0000000..4b99a0e
--- /dev/null
+++ b/SUBS.rs
@@ -0,0 +1,20 @@
+extern mod rosalind;
+use rosalind::io::input_line;
+
+fn substrings(haystack: &str, needle: &str) -> ~[uint] {
+ let mut indices = ~[];
+ do str::find_str(haystack, needle).while_some |start| {
+ indices.push(start + 1);
+ str::find_str_from(haystack, needle, start + 1)
+ }
+ indices
+}
+
+fn main() {
+ let haystack = input_line();
+ let needle = input_line();
+
+ let indices = substrings(haystack, needle);
+
+ io::println(str::connect(indices.map(|i| fmt!("%u", *i)), " "))
+}