Skip to content
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

First round of converted samples #6

Merged
merged 52 commits into from
Aug 13, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
7f61067
Adding to BigIntMod python code
vprusso Jun 28, 2019
d1ad539
Adding FindDuplicates python code
vprusso Jun 28, 2019
6732f06
Adding IntToRoman python
vprusso Jun 28, 2019
7ce9b4b
Rename to be consistent
vprusso Jun 28, 2019
2b1be53
Adding LinkedListCycle
vprusso Jun 28, 2019
23bf9de
Adding NthToLast Python code
vprusso Jun 28, 2019
5f97fbc
Added ZeroMatrix Python file
vprusso Jun 28, 2019
bc5daf7
Adding to ConsecutiveArray Python file
vprusso Jun 29, 2019
bc29339
Adding to BuildOrder Python file
vprusso Jul 1, 2019
3264df1
Adding to Python solutions
vprusso Jul 3, 2019
1b46d29
Update to README
vprusso Jul 3, 2019
20a791b
Adding to README
vprusso Jul 3, 2019
4ff2e40
Adding to README
vprusso Jul 3, 2019
439e265
Adding Knapsack to code
vprusso Jul 6, 2019
aa910e7
Updated README
vprusso Jul 6, 2019
b40e81d
Added to README
vprusso Jul 6, 2019
d3e8213
Updating README file
vprusso Jul 6, 2019
75803d6
Updating README
vprusso Jul 6, 2019
90d3380
Adding to README
vprusso Jul 6, 2019
e430ca1
Adding CPP FizzBuzz
vprusso Jul 6, 2019
80237f4
Updates to readme
vprusso Jul 6, 2019
ce3d44d
Adding Java FizzBuzz
vprusso Jul 7, 2019
645eb31
Adding Ones Binary in Python and Java
vprusso Jul 7, 2019
1fc57cf
Adding to README
vprusso Jul 7, 2019
31a700e
Adding to Anagrams and OnesInBinary
vprusso Jul 9, 2019
40cb86b
Updates to README
vprusso Jul 9, 2019
f87536f
Adding to String Deletion
vprusso Jul 9, 2019
ec20fd4
Adding Sum problem for Python and Java
vprusso Jul 11, 2019
cd02973
Adding to Fibonacci for Python and Java
vprusso Jul 11, 2019
f97743c
Adding CPP for Fibonacci
vprusso Jul 11, 2019
8422507
Adding to smallest change for Java and Python
vprusso Jul 11, 2019
9cb7b5d
t
vprusso Jul 11, 2019
505ff75
Adding to Swap variables for all CPP,Python, and Java
vprusso Jul 11, 2019
4a329e8
Adding to ClockAngle code
vprusso Jul 11, 2019
160cbb1
IntToRoman C++
vprusso Jul 18, 2019
367653f
Adding to dedup linked list
vprusso Jul 19, 2019
5beac7b
Adding to dedup linked list
vprusso Jul 21, 2019
bda4e27
Adding to Random linked list
vprusso Jul 22, 2019
262f3a9
Adding to FindDuplicates for C++
vprusso Jul 25, 2019
f03af31
Adding to Two Missing
vprusso Jul 25, 2019
bccd4f4
Adding to ReverseStack for Java and Python
vprusso Jul 31, 2019
0ec613f
Adding to ReverseStack
vprusso Aug 1, 2019
4ed5c47
Adding to Gray Code
vprusso Aug 1, 2019
8b2a18b
Adding to PrintReversedLsit
vprusso Aug 1, 2019
70e366a
Adding to README
vprusso Aug 1, 2019
d6d50e6
Adding to RotateBits
vprusso Aug 2, 2019
ce8e85b
Adding to string compression for Java and Python
vprusso Aug 3, 2019
a62f894
Adding README
vprusso Aug 3, 2019
13775cd
Updates to StringCompression python file
vprusso Aug 4, 2019
5441eb0
Adding to line intersection
vprusso Aug 4, 2019
ccb3f6b
Adding to MaxStack
vprusso Aug 12, 2019
86d8111
Adding to TreeLevelOrder
vprusso Aug 12, 2019
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
Prev Previous commit
Next Next commit
Adding to Swap variables for all CPP,Python, and Java
  • Loading branch information
vprusso committed Jul 11, 2019
commit 505ff7549f1fd15395d5fe7e09ffe77fed775d31
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@ Given two integers, write a function to sum the numbers without using any arithm
* [Reverse Stack](http://www.byte-by-byte.com/reversestack/)
Given a stack, reverse the items without creating any additional data structures.

* [Swap Variables](http://www.byte-by-byte.com/swapvariables/)
* [Swap Variables](http://www.byte-by-byte.com/swapvariables/)
([C++](https://github.com/samgh/Byte-by-Byte-Solutions/blob/master/cpp/SwapVariables.cpp))
([Java](https://github.com/samgh/Byte-by-Byte-Solutions/blob/master/java/SwapVariables.java))
([Python](https://github.com/samgh/Byte-by-Byte-Solutions/blob/master/python/SwapVariables.py))<br>
Given two integers, write a function that swaps them without using any temporary variables.

* [Matrix Search](http://www.byte-by-byte.com/matrixsearch/)
Expand Down
74 changes: 74 additions & 0 deletions cpp/SwapVariables.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/*
* Title: Swap Variables
*
* Given two integers, write a function that swaps them without using any
* temporary variables.
*
* Execution: g++ SwapVariables.cpp -o SwapVariables
*
* For more details, check out http://www.byte-by-byte.com/swapvariables
*/

#include <iostream>
#include <vector>

using namespace std;

vector<int> swap_1(int x, int y) {
vector<int> vars;

x = x + y;
y = x - y;
x = x - y;

vars.push_back(x);
vars.push_back(y);

return vars;
}

vector<int> swap_2(int x, int y) {
vector<int> vars;

x = x ^ y;
y = x ^ y;
x = x ^ y;

vars.push_back(x);
vars.push_back(y);
return vars;
}

int main() {
vector<int> test_1 = swap_1(1, 2);
assert(test_1[0] == 2);
assert(test_1[1] == 1);
cout << "Swapped (1,2) with (2,1)" << endl;

vector<int> test_2 = swap_1(5, 5);
assert(test_2[0] == 5);
assert(test_2[1] == 5);
cout << "Swapped (5,5) with (5,5)" << endl;

vector<int> test_3 = swap_1(-1, 40);
assert(test_3[0] == 40);
assert(test_3[1] == -1);
cout << "Swapped (40,-1) with (-1,40)" << endl;

vector<int> test_4 = swap_2(1, 2);
assert(test_4[0] == 2);
assert(test_4[1] == 1);
cout << "Swapped (1,2) with (2,1)" << endl;

vector<int> test_5 = swap_2(5, 5);
assert(test_5[0] == 5);
assert(test_5[1] == 5);
cout << "Swapped (5,5) with (5,5)" << endl;

vector<int> test_6 = swap_2(-1, 40);
assert(test_6[0] == 40);
assert(test_6[1] == -1);
cout << "Swapped (40,-1) with (-1,40)" << endl;

return 0;
}
62 changes: 62 additions & 0 deletions java/SwapVariables.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Title: Swap Variables
*
* Given two integers, write a function that swaps them without using any temporary variables.
*
* Execution: javac SwapVariables.java && java SwapVariables

* For more details, check out http://www.byte-by-byte.com/swapvariables
*/

public class SwapVariables {
public static int[] swap_1(int x, int y) {
x = x + y;
y = x - y;
x = x - y;

int ar[] = new int[2];
ar[0] = x;
ar[1] = y;
return ar;
}

public static int[] swap_2(int x, int y) {
x = x ^ y;
y = x ^ y;
x = x ^ y;

int ar[] = new int[2];
ar[0] = x;
ar[1] = y;
return ar;
}

// Sample test cases
public static void main(String[] args) {
int ar_1[] = swap_1(1, 2);
assert ar_1[0] == 2 && ar_1[1] == 1:
"Swapped (1,2) with (2,1)";

int ar_2[] = swap_1(5, 5);
assert ar_2[0] == 5 && ar_2[1] == 5:
"Swapped (5,5) with (5,5)";

int ar_3[] = swap_1(-1, 40);
assert ar_3[0] == 40 && ar_3[1] == -1:
"Swaped(-1,40) with (40,-1)";

int ar_4[] = swap_2(1, 2);
assert ar_4[0] == 2 && ar_4[1] == 1:
"Swapped (1,2) with (2,1)";

int ar_5[] = swap_2(5, 5);
assert ar_5[0] == 5 && ar_5[1] == 5:
"Swapped (5,5) with (5,5)";

int ar_6[] = swap_2(-1, 40);
assert ar_6[0] == 40 && ar_6[1] == -1:
"Swapped(-1,40) with (40,-1)";

System.out.println("Passed all test cases");
}
}
56 changes: 56 additions & 0 deletions python/SwapVariables.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
"""
Title: Swap Variables

Given two integers, write a function that swaps them without using any
temporary variables.

Execution: python SwapVariables.py

For more details, check out http://www.byte-by-byte.com/swapvariables

"""
import unittest


def swap_1(x: int, y: int):
x = x + y
y = x - y
x = x - y
return x, y


def swap_2(x: int, y: int):
x = x ^ y
y = x ^ y
x = x ^ y
return x, y


class TestSwap(unittest.TestCase):
def test_swap_1_1_2(self):
self.assertEqual(swap_1(1, 2), (2, 1))
print("Swapped (1, 2) with (2, 1)")

def test_swap_1_5_5(self):
self.assertEqual(swap_1(5, 5), (5, 5))
print("Swapped (5, 5) with (5, 5)")

def test_swap_1_neg1_40(self):
self.assertEqual(swap_1(-1, 40), (40, -1))
print("Swapped (-1, 40) with (40, -1)")

def test_swap_2_1_2(self):
self.assertEqual(swap_2(1, 2), (2, 1))
print("Swapped (1, 2) with (2, 1)")

def test_swap_2_5_5(self):
self.assertEqual(swap_2(5, 5), (5, 5))
print("Swapped (5, 5) with (5, 5)")

def test_swap_2_neg1_40(self):
self.assertEqual(swap_2(-1, 40), (40, -1))
print("Swapped (-1, 40) with (40, -1)")


if __name__ == '__main__':
unittest.main()