From 7920339772d60c9fa5bed10892f2fa86afed5e4c Mon Sep 17 00:00:00 2001 From: Koushki Date: Fri, 23 Oct 2020 20:10:01 +0530 Subject: [PATCH] added a file in hackerrank array-rotation --- Hackerrank/array-left-rotat.cpp | 96 +++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 Hackerrank/array-left-rotat.cpp diff --git a/Hackerrank/array-left-rotat.cpp b/Hackerrank/array-left-rotat.cpp new file mode 100644 index 0000000..a518339 --- /dev/null +++ b/Hackerrank/array-left-rotat.cpp @@ -0,0 +1,96 @@ +//link:https://github.com/koushkigupta/Competitive-Programming--Solution/tree/master/Hackerrank + +#include + +using namespace std; + +vector split_string(string); + +// Complete the rotLeft function below. +vector rotLeft(vector a, int d) { + +vector newa; +for(int i=d;i nd = split_string(nd_temp); + + int n = stoi(nd[0]); + + int d = stoi(nd[1]); + + string a_temp_temp; + getline(cin, a_temp_temp); + + vector a_temp = split_string(a_temp_temp); + + vector a(n); + + for (int i = 0; i < n; i++) { + int a_item = stoi(a_temp[i]); + + a[i] = a_item; + } + + vector result = rotLeft(a, d); + + for (int i = 0; i < result.size(); i++) { + cout << result[i]; + + if (i != result.size() - 1) { + cout << " "; + } + } + + cout << "\n"; + + + + return 0; +} + +vector split_string(string input_string) { + string::iterator new_end = unique(input_string.begin(), input_string.end(), [] (const char &x, const char &y) { + return x == y and x == ' '; + }); + + input_string.erase(new_end, input_string.end()); + + while (input_string[input_string.length() - 1] == ' ') { + input_string.pop_back(); + } + + vector splits; + char delimiter = ' '; + + size_t i = 0; + size_t pos = input_string.find(delimiter); + + while (pos != string::npos) { + splits.push_back(input_string.substr(i, pos - i)); + + i = pos + 1; + pos = input_string.find(delimiter, i); + } + + splits.push_back(input_string.substr(i, min(pos, input_string.length()) - i + 1)); + + return splits; +}