#include <iostream> #include <map> #include <string> #include <vector> using namespace std; int main() { std::string dna("ACTGCGACGGTACGCTTCGACGTAG"); std::map< std::string, std::vector<int> > msvi; auto len = dna.size(); for(auto i = 0; i + 3 <= len; ++i) { for(auto j = 3; i + j < len; ++j) { msvi[ dna.substr(i, j) ].push_back(i); } } for(auto &it : msvi) { cout << it.first << ':'; for(auto &n : it.second) cout << n << ' '; cout << endl; } return 0; }
Standard input is empty
ACG:6 11 19 ACGC:11 ACGCT:11 ACGCTT:11 ACGCTTC:11 ACGCTTCG:11 ACGCTTCGA:11 ACGCTTCGAC:11 ACGCTTCGACG:11 ACGCTTCGACGT:11 ACGCTTCGACGTA:11 ACGG:6 ACGGT:6 ACGGTA:6 ACGGTAC:6 ACGGTACG:6 ACGGTACGC:6 ACGGTACGCT:6 ACGGTACGCTT:6 ACGGTACGCTTC:6 ACGGTACGCTTCG:6 ACGGTACGCTTCGA:6 ACGGTACGCTTCGAC:6 ACGGTACGCTTCGACG:6 ACGGTACGCTTCGACGT:6 ACGGTACGCTTCGACGTA:6 ACGT:19 ACGTA:19 ACT:0 ACTG:0 ACTGC:0 ACTGCG:0 ACTGCGA:0 ACTGCGAC:0 ACTGCGACG:0 ACTGCGACGG:0 ACTGCGACGGT:0 ACTGCGACGGTA:0 ACTGCGACGGTAC:0 ACTGCGACGGTACG:0 ACTGCGACGGTACGC:0 ACTGCGACGGTACGCT:0 ACTGCGACGGTACGCTT:0 ACTGCGACGGTACGCTTC:0 ACTGCGACGGTACGCTTCG:0 ACTGCGACGGTACGCTTCGA:0 ACTGCGACGGTACGCTTCGAC:0 ACTGCGACGGTACGCTTCGACG:0 ACTGCGACGGTACGCTTCGACGT:0 ACTGCGACGGTACGCTTCGACGTA:0 CGA:4 17 CGAC:4 17 CGACG:4 17 CGACGG:4 CGACGGT:4 CGACGGTA:4 CGACGGTAC:4 CGACGGTACG:4 CGACGGTACGC:4 CGACGGTACGCT:4 CGACGGTACGCTT:4 CGACGGTACGCTTC:4 CGACGGTACGCTTCG:4 CGACGGTACGCTTCGA:4 CGACGGTACGCTTCGAC:4 CGACGGTACGCTTCGACG:4 CGACGGTACGCTTCGACGT:4 CGACGGTACGCTTCGACGTA:4 CGACGT:17 CGACGTA:17 CGC:12 CGCT:12 CGCTT:12 CGCTTC:12 CGCTTCG:12 CGCTTCGA:12 CGCTTCGAC:12 CGCTTCGACG:12 CGCTTCGACGT:12 CGCTTCGACGTA:12 CGG:7 CGGT:7 CGGTA:7 CGGTAC:7 CGGTACG:7 CGGTACGC:7 CGGTACGCT:7 CGGTACGCTT:7 CGGTACGCTTC:7 CGGTACGCTTCG:7 CGGTACGCTTCGA:7 CGGTACGCTTCGAC:7 CGGTACGCTTCGACG:7 CGGTACGCTTCGACGT:7 CGGTACGCTTCGACGTA:7 CGT:20 CGTA:20 CTG:1 CTGC:1 CTGCG:1 CTGCGA:1 CTGCGAC:1 CTGCGACG:1 CTGCGACGG:1 CTGCGACGGT:1 CTGCGACGGTA:1 CTGCGACGGTAC:1 CTGCGACGGTACG:1 CTGCGACGGTACGC:1 CTGCGACGGTACGCT:1 CTGCGACGGTACGCTT:1 CTGCGACGGTACGCTTC:1 CTGCGACGGTACGCTTCG:1 CTGCGACGGTACGCTTCGA:1 CTGCGACGGTACGCTTCGAC:1 CTGCGACGGTACGCTTCGACG:1 CTGCGACGGTACGCTTCGACGT:1 CTGCGACGGTACGCTTCGACGTA:1 CTT:14 CTTC:14 CTTCG:14 CTTCGA:14 CTTCGAC:14 CTTCGACG:14 CTTCGACGT:14 CTTCGACGTA:14 GAC:5 18 GACG:5 18 GACGG:5 GACGGT:5 GACGGTA:5 GACGGTAC:5 GACGGTACG:5 GACGGTACGC:5 GACGGTACGCT:5 GACGGTACGCTT:5 GACGGTACGCTTC:5 GACGGTACGCTTCG:5 GACGGTACGCTTCGA:5 GACGGTACGCTTCGAC:5 GACGGTACGCTTCGACG:5 GACGGTACGCTTCGACGT:5 GACGGTACGCTTCGACGTA:5 GACGT:18 GACGTA:18 GCG:3 GCGA:3 GCGAC:3 GCGACG:3 GCGACGG:3 GCGACGGT:3 GCGACGGTA:3 GCGACGGTAC:3 GCGACGGTACG:3 GCGACGGTACGC:3 GCGACGGTACGCT:3 GCGACGGTACGCTT:3 GCGACGGTACGCTTC:3 GCGACGGTACGCTTCG:3 GCGACGGTACGCTTCGA:3 GCGACGGTACGCTTCGAC:3 GCGACGGTACGCTTCGACG:3 GCGACGGTACGCTTCGACGT:3 GCGACGGTACGCTTCGACGTA:3 GCT:13 GCTT:13 GCTTC:13 GCTTCG:13 GCTTCGA:13 GCTTCGAC:13 GCTTCGACG:13 GCTTCGACGT:13 GCTTCGACGTA:13 GGT:8 GGTA:8 GGTAC:8 GGTACG:8 GGTACGC:8 GGTACGCT:8 GGTACGCTT:8 GGTACGCTTC:8 GGTACGCTTCG:8 GGTACGCTTCGA:8 GGTACGCTTCGAC:8 GGTACGCTTCGACG:8 GGTACGCTTCGACGT:8 GGTACGCTTCGACGTA:8 GTA:9 21 GTAC:9 GTACG:9 GTACGC:9 GTACGCT:9 GTACGCTT:9 GTACGCTTC:9 GTACGCTTCG:9 GTACGCTTCGA:9 GTACGCTTCGAC:9 GTACGCTTCGACG:9 GTACGCTTCGACGT:9 GTACGCTTCGACGTA:9 TAC:10 TACG:10 TACGC:10 TACGCT:10 TACGCTT:10 TACGCTTC:10 TACGCTTCG:10 TACGCTTCGA:10 TACGCTTCGAC:10 TACGCTTCGACG:10 TACGCTTCGACGT:10 TACGCTTCGACGTA:10 TCG:16 TCGA:16 TCGAC:16 TCGACG:16 TCGACGT:16 TCGACGTA:16 TGC:2 TGCG:2 TGCGA:2 TGCGAC:2 TGCGACG:2 TGCGACGG:2 TGCGACGGT:2 TGCGACGGTA:2 TGCGACGGTAC:2 TGCGACGGTACG:2 TGCGACGGTACGC:2 TGCGACGGTACGCT:2 TGCGACGGTACGCTT:2 TGCGACGGTACGCTTC:2 TGCGACGGTACGCTTCG:2 TGCGACGGTACGCTTCGA:2 TGCGACGGTACGCTTCGAC:2 TGCGACGGTACGCTTCGACG:2 TGCGACGGTACGCTTCGACGT:2 TGCGACGGTACGCTTCGACGTA:2 TTC:15 TTCG:15 TTCGA:15 TTCGAC:15 TTCGACG:15 TTCGACGT:15 TTCGACGTA:15