From 37750206e6c48d80d5c4ad25a00b8475f3c126a4 Mon Sep 17 00:00:00 2001 From: maneesh1510 <71519887+maneesh1510@users.noreply.github.com> Date: Sun, 18 Oct 2020 16:26:18 +0530 Subject: [PATCH] Create Left_Rotation.cpp adding a new file 'Left_Rotation.cpp' to implement solution of the HackeRank Problem "Left Rotation" --- Hackerrank/Data_Structures/Left_Rotation.cpp | 67 ++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Hackerrank/Data_Structures/Left_Rotation.cpp diff --git a/Hackerrank/Data_Structures/Left_Rotation.cpp b/Hackerrank/Data_Structures/Left_Rotation.cpp new file mode 100644 index 0000000..a95480d --- /dev/null +++ b/Hackerrank/Data_Structures/Left_Rotation.cpp @@ -0,0 +1,67 @@ +/* Solution of the HackerRank Problem 'Left Rotation' + https://www.hackerrank.com/challenges/array-left-rotation/problem */ + +#include +using namespace std; + +vector split_string(string); + +int main() +{ + string nd_temp; + getline(cin, nd_temp); + + vector 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; + } + rotate(a.begin(), a.begin()+d, a.end()); + for(int i=0;i 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; +} +