diff options
author | Santo Cariotti <dcariotti24@gmail.com> | 2020-01-19 22:34:25 +0100 |
---|---|---|
committer | Santo Cariotti <dcariotti24@gmail.com> | 2020-01-19 22:34:25 +0100 |
commit | 39f1aa4cf7d8e1cd2ec89e736d57c1a9f67ca202 (patch) | |
tree | 312c9c443c7c2d89a55ae9529868f6c121a54fe7 /I_anno/Programmazione_1 | |
parent | 827eaadd5038271ca0dd9ff3ed937d29c473e207 (diff) |
ex 2 8/3/18
Scrivere un metodo che prenda come parametri formali una matrice A di stringhe ed uno short w, e
restituisca in output un bool che indichi se esiste una riga di A in cui siano presenti almeno due
stringhe consecutive in cui i primi w caratteri della prima stringa siano uguali agli ultimi w caratteri
della seconda stringa (nello stesso ordine).
Diffstat (limited to 'I_anno/Programmazione_1')
-rw-r--r-- | I_anno/Programmazione_1/ex2_08_03_18.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/I_anno/Programmazione_1/ex2_08_03_18.cc b/I_anno/Programmazione_1/ex2_08_03_18.cc new file mode 100644 index 0000000..88d55e1 --- /dev/null +++ b/I_anno/Programmazione_1/ex2_08_03_18.cc @@ -0,0 +1,49 @@ +#include<iostream> +using namespace std; + +template<int N, int M> +bool func(string (&A)[N][M], short w) { + bool check{false}; + for(int i = 0; i < N; ++i) { + bool counter{false}; + string str{""}; + string str2{""}; + for(int j = 0; j < M; ++j) { + if(A[i][j].length() < w) { + counter = false; + continue; + } + + if(!counter) { + str = A[i][j].substr(0, w); + + counter = true; + continue; + } + + str2 = A[i][j].substr(A[i][j].length()-w, w); + + if(str == str2) { + check = true; + break; + } else { + j--; + counter = false; + } + } + + if(check) break; + } + + return check; +} + +int main() { + string A[3][3] = { + {"parola", "allorapar", "bla",}, + {"", "red", "red",}, + {"blue", "", "",}, + }; + cout << func(A, 3); + return 0; +} |