8000 added hackerrank solutions by Animeshsharma4 · Pull Request #630 · dheeraj-2000/dsalgo · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

added hackerrank solutions #630

8000
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions hacker rank solutions/Delete a node.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@



SinglyLinkedListNode* deleteNode(SinglyLinkedListNode* llist, int position) {
int cnt=0;
SinglyLinkedListNode* temp=llist;

while(cnt<position-1){
temp=temp->next;
cnt++;
}
if(position==0) {
llist=temp->next;
}
temp->next=temp->next->next;

return llist;
}
18 changes: 18 additions & 0 deletions hacker rank solutions/Left Rotation.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include <iostream>
using namespace std;
#include <vector>
int main(){
int n1,n2;
cin>>n1>>n2;
vector <int> vect(n1);
for(int i=0;i<n1;++i){
cin>>vect[i];
}
n2=n2%n1;
for(int j=n2;j<n1;++j){
cout<<vect[j]<<" ";
}
for(int j=0;j<n2;++j){
cout<<vect[j]<<" ";
}
}
100 changes: 100 additions & 0 deletions hacker rank solutions/arrays-DS.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#include <bits/stdc++.h>

using namespace std;

string ltrim(const string &);
string rtrim(const string &);
vector<string> split(const string &);

/*
* Complete the 'reverseArray' function below.
*
* The function is expected to return an INTEGER_ARRAY.
* The function accepts INTEGER_ARRAY a as parameter.
*/

vector<int> reverseArray(vector<int> a) {
vector<int>result;
for(int i=a.size()-1;i>=0;i--){
result.push_back(a[i]);
}
return result;
}

int main()
{
ofstream fout(getenv("OUTPUT_PATH"));

string arr_count_temp;
getline(cin, arr_count_temp);

int arr_count = stoi(ltrim(rtrim(arr_count_temp)));

string arr_temp_temp;
getline(cin, arr_temp_temp);

vector<string> arr_temp = split(rtrim(arr_temp_temp));

vector<int> arr(arr_count);

for (int i = 0; i < arr_count; i++) {
int arr_item = stoi(arr_temp[i]);

arr[i] = arr_item;
}

vector<int> res = reverseArray(arr);

for (size_t i = 0; i < res.size(); i++) {
fout << res[i];

if (i != res.size() - 1) {
fout << " ";
}
}

fout << "\n";

fout.close();

return 0;
}

string ltrim(const string &str) {
string s(str);

s.erase(
s.begin(),
find_if(s.begin(), s.end(), not1(ptr_fun<int, int>(isspace)))
);

return s;
}

string rtrim(const string &str) {
string s(str);

s.erase(
find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>(isspace))).base(),
s.end()
);

return s;
}

vector<string> split(const string &str) {
vector<string> tokens;

string::size_type start = 0;
string::size_type end = 0;

while ((end = str.find(" ", start)) != string::npos) {
tokens.push_back(str.substr(start, end - start));

start = end + 1;
}

tokens.push_back(str.substr(start));

return tokens;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

/*
* For your reference:
*
* SinglyLinkedListNode {
* int data;
* SinglyLinkedListNode* next;
* };
*
*/

SinglyLinkedListNode* insertNodeAtPosition(SinglyLinkedListNode* llist, int data, int position) {
SinglyLinkedListNode*temp=llist;
int cnt=0;
SinglyLinkedListNode*node1=new SinglyLinkedListNode(data);
if(position==1){
node1->next=llist;
llist=node1;
}
else{
while(cnt<position-1) {
cnt++;
temp=temp->next;
}
node1->next=temp->next;
temp->next=node1;
}

return llist;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
SinglyLinkedListNode* insertNodeAtHead(SinglyLinkedListNode* llist, int data) {
SinglyLinkedListNode* temp=new SinglyLinkedListNode(data);
temp->next=llist;
llist=temp;
return llist;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
SinglyLinkedListNode*insertNodeAtTail( SinglyLinkedListNode* head,int data){
SinglyLinkedListNode*temp=head;
SinglyLinkedListNode*node1=new SinglyLinkedListNode(data);
if(head==0){
head=node1;
}
else{
while(temp->next!=NULL){
temp=temp->next;
}
temp->next=node1;

}
return head;
}
18 changes: 18 additions & 0 deletions hacker rank solutions/print in reverse.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
SinglyLinkedListNode* reversePrint(SinglyLinkedListNode* llist) {
if(llist==NULL || llist->next==NULL){
return llist;
}
SinglyLinkedListNode* curr=llist;
SinglyLinkedListNode* prev=NULL;
SinglyLinkedListNode* forward=NULL;

while(curr!=NULL){
forward=curr->next;
curr->next=prev;
prev=curr;
curr=forward;


}
return prev;
}
10 changes: 10 additions & 0 deletions hacker rank solutions/print the element of linked list.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
void printLinkedList(SinglyLinkedListNode* head) {
SinglyLinkedListNode*temp=head;
while(temp!=NULL){
cout<<temp->data<<endl;;
temp=temp->next;
}



}
20 changes: 20 additions & 0 deletions hacker rank solutions/reverse a linked list.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@


SinglyLinkedListNode* reverse(SinglyLinkedListNode* llist) {
if(llist==NULL || llist->next==NULL){
return llist;
}
SinglyLinkedListNode* curr=llist;
SinglyLinkedListNode* prev=NULL;
SinglyLinkedListNode* forward=NULL;

while(curr!=NULL){
forward=curr->next;
curr->next=prev;
prev=curr;
curr=forward;


}
return prev;
}
0