diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java index ef714b5..48e7873 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java @@ -9,7 +9,8 @@ public class BasicArrayUtils { * @return the first element in the array */ public static String getFirstElement(String[] stringArray) { - return null; + return stringArray[0]; + //return null; } /** @@ -17,7 +18,9 @@ public static String getFirstElement(String[] stringArray) { * @return the second element in the array */ public static String getSecondElement(String[] stringArray) { - return null; + int getSecondToLastPosition = stringArray.length - 2; + return stringArray[getSecondToLastPosition]; + //return null; } /** @@ -25,7 +28,9 @@ public static String getSecondElement(String[] stringArray) { * @return the last element in the array */ public static String getLastElement(String[] stringArray) { - return null; + int lastElement = stringArray.length - 1; + return stringArray[lastElement]; + //return null; } /** @@ -33,6 +38,8 @@ public static String getLastElement(String[] stringArray) { * @return the second to last element in the array */ public static String getSecondToLastElement(String[] stringArray) { - return null; + int getSecondToLastPosition = stringArray.length - 2; + return stringArray[getSecondToLastPosition]; + //return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java index ca13f2d..6654952 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java @@ -9,7 +9,8 @@ public class BasicStringUtils { * @return string with identical content, and the first character capitalized */ public static String camelCase(String str) { - return null; + return Character.toUpperCase(str.charAt(0)) + str.substring(1); + } /** @@ -17,7 +18,8 @@ public static String camelCase(String str) { * @return string with identical contents, in the reverse order */ public static String reverse(String str) { - return null; + return new StringBuilder(str).reverse().toString(); + } /** @@ -25,7 +27,9 @@ public static String reverse(String str) { * @return string with identical contents, in reverse order, with first character capitalized */ public static String reverseThenCamelCase(String str) { - return null; + String reversed = new StringBuilder(str).reverse().toString(); + return camelCase(reversed); + } @@ -34,7 +38,8 @@ public static String reverseThenCamelCase(String str) { * @return string with identical contents excluding first and last character */ public static String removeFirstAndLastCharacter(String str) { - return null; + return str.substring(1, str.length() - 1); + } /** @@ -42,6 +47,16 @@ public static String removeFirstAndLastCharacter(String str) { * @return string with identical characters, each with opposite casing */ public static String invertCasing(String str) { - return null; + char[] chars = str.toCharArray(); + for (int i = 0; i < chars.length; i++) { + char c = chars[i]; + if (Character.isUpperCase(c)) { + chars[i] = Character.toLowerCase(c); + } else if (Character.isLowerCase(c)) { + chars[i] = Character.toUpperCase(c); + } + } + return new String(chars); + } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java index 68d82ec..31693d4 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java @@ -9,7 +9,12 @@ public class IntegerArrayUtils { * @return the sum of `intArray` */ public static Integer getSum(Integer[] intArray) { - return null; + int sum = 0; + for (Integer num : intArray) { + sum += num; + } + return sum; + } /** @@ -17,7 +22,12 @@ public static Integer getSum(Integer[] intArray) { * @return the product of `intArray` */ public static Integer getProduct(Integer[] intArray) { - return null; + int product = 1; + for (Integer num : intArray) { + product *= num; + } + return product; + } /** @@ -25,6 +35,8 @@ public static Integer getProduct(Integer[] intArray) { * @return the sum of `intArray` divided by number of elements in `intArray` */ public static Double getAverage(Integer[] intArray) { - return null; + int sum = getSum(intArray); + return (double) sum / intArray.length; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java index eccbb6c..1f7548b 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java @@ -11,7 +11,12 @@ public class IntegerUtils { * @return the sum of all integers between 0 and not including `n` */ public static Integer getSumOfN(Integer n) { - return null; + int sum = 0; + for (int i = 0; i <= n; i++) { + sum += i; + } + return sum; + } /** @@ -19,7 +24,12 @@ public static Integer getSumOfN(Integer n) { * @return the product of all integers between 0 and not including `n` */ public static Integer getProductOfN(Integer n) { - return null; + int product = 1; + for (int i = 1; i <= n; i++) { + product *= i; + } + return product; + } /** @@ -27,6 +37,13 @@ public static Integer getProductOfN(Integer n) { * @return integer with identical digits in the reverse order */ public static Integer reverseDigits(Integer val) { - return null; + int reversed = 0; + while (val != 0) { + int digit = val % 10; + reversed = reversed * 10 + digit; + val /= 10; + } + return reversed; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java index 9495445..23c0f97 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java @@ -13,7 +13,15 @@ public class RockPaperSissorsEvaluator { * @return the respective winning move */ public String getWinningMove(String handSign) { - return null; + if (handSign.equals(ROCK)) { + return PAPER; + } else if (handSign.equals(PAPER)) { + return SCISSOR; + } else if (handSign.equals(SCISSOR)){ + return ROCK; + }else{ + return null; + } } /** @@ -21,7 +29,15 @@ public String getWinningMove(String handSign) { * @return the respective losing move */ public String getLosingMove(String handSign) { - return null; + if (handSign.equals(ROCK)) { + return SCISSOR; + } else if (handSign.equals(PAPER)) { + return ROCK; + } else if (handSign.equals(SCISSOR)) { + return PAPER; + } else { + return null; + } } /** @@ -30,6 +46,13 @@ public String getLosingMove(String handSign) { * @return a string representative of the winning hand sign between the two players */ public String getWinner(String handSignOfPlayer1, String handSignOfPlayer2) { - return null; + // Determine the winner based on the rules of rock-paper-scissors + if (handSignOfPlayer1.equals(handSignOfPlayer2)) { + return "draw"; + } else if (handSignOfPlayer1.equals(getWinningMove(handSignOfPlayer2))) { + return ROCK; + } else { + return handSignOfPlayer2 + handSignOfPlayer1; + } } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java index bb9995a..03cb019 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java @@ -1,5 +1,9 @@ package com.zipcodewilmington.assessment1.part2; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * Created by leon on 2/16/18. */ @@ -11,7 +15,14 @@ public class ArrayUtils { * Given an array of objects, named `objectArray`, and an object `objectToCount`, return the number of times the `objectToCount` appears in the `objectArray` */ public static Integer getNumberOfOccurrences(Object[] objectArray, Object objectToCount) { - return null; + int counter = 0; + for(int i = 0; i result = new ArrayList<>(); + for (Integer num : ints) { + if (num % 2 != 0) { + result.add(num); + } + } + return result.toArray(new Integer[0]); + } /** @@ -19,7 +31,14 @@ public Integer[] deleteEvens(Integer[] ints) { * given an array of integers, named `ints` return an identical array with odds removed */ public Integer[] deleteOdds(Integer[] ints) { - return null; + List result = new ArrayList<>(); + for (Integer num : ints) { + if (num % 2 == 0) { + result.add(num); + } + } + return result.toArray(new Integer[0]); + } /** @@ -28,7 +47,14 @@ public Integer[] deleteOdds(Integer[] ints) { * given an array of integers, named `ints` return an identical array with numbers indivisible by 3 removed */ public Integer[] deleteMultiplesOf3(Integer[] ints) { - return null; + List result = new ArrayList<>(); + for (Integer num : ints) { + if (num % 3 != 0) { + result.add(num); + } + } + return result.toArray(new Integer[0]); + } /** @@ -38,6 +64,13 @@ public Integer[] deleteMultiplesOf3(Integer[] ints) { * given an array of integers, named `ints` return an identical array with numbers indivisible by `multiple` removed */ public Integer[] deleteMultiplesOfN(Integer[] ints, int multiple) { - return null; + List result = new ArrayList<>(); + for (Integer num : ints) { + if (num % multiple != 0) { + result.add(num); + } + } + return result.toArray(new Integer[0]); } + } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java index fc403e5..8fc8a86 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java @@ -11,7 +11,8 @@ public class StringUtils { * given a string containing words delimited by spaces, representative of a sentence, return an array of strings, each element representative of a respective word in the sentence */ public static String[] getWords(String sentence) { - return null; + return sentence.split("\\s+"); + } @@ -21,7 +22,13 @@ public static String[] getWords(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word of the sentence */ public static String getFirstWord(String sentence) { - return null; + String[] words = sentence.split("\\s+"); + if (words.length > 0){ + return words[0]; + }else { + return ""; + } + } /** @@ -30,7 +37,14 @@ public static String getFirstWord(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word with identical contents in reverse order */ public static String reverseFirstWord(String sentence) { - return null; + String[] words = sentence.split("\\s+"); + if (words.length > 0) { + String firstWord = words[0]; + return new StringBuilder(firstWord).reverse().toString(); + } else { + return ""; + } + } /** @@ -39,7 +53,13 @@ public static String reverseFirstWord(String sentence) { * given a string containing words delimited by spaces, representative of a sentence, return the first word with identical contents in reverse order with the first character capitalized */ public static String reverseFirstWordThenCamelCase(String sentence) { - return null; + String reversed = reverseFirstWord(sentence); + if (!reversed.isEmpty()) { + return reversed.substring(0, 1).toUpperCase() + reversed.substring(1); + } else { + return ""; + } + } @@ -50,7 +70,11 @@ public static String reverseFirstWordThenCamelCase(String sentence) { * given a string and index, return an identical string excluding the character at the specified index */ public static String removeCharacterAtIndex(String str, int index) { - return null; + if (index < 0 || index >= str.length()) { + return str; + } + return str.substring(0, index) + str.substring(index + 1); + } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java index e731b77..c8dd23d 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java @@ -4,40 +4,44 @@ * Created by leon on 2/16/18. */ public class Cat extends Pet { + public Cat(){ + super("Cat name", 0); + } /** * @param name name of this Cat * @param age age of this Cat */ public Cat(String name, Integer age) { - + super(name,age); } /** * @param age age of this Cat */ public Cat(Integer age) { + super("Cat name", age); } /** * @param name name of this Cat */ public Cat(String name) { + super(name,0); } - /** * nullary constructor * by default, a Cat's * name is CatName * age is 0 */ - public Cat() { - } + //public Cat() { + // } /** * @return meow as a string */ public String speak() { - return null; + return "Meow"; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java index 0c775fd..e23cdee 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java @@ -1,14 +1,20 @@ package com.zipcodewilmington.assessment1.part3; +import java.util.Date; + /** * Created by leon on 2/16/18. */ public class Dog extends Pet { + public Dog(){ + super("Dog name", 0); + } /** * @param name name of this Dog * @param age age of this dog */ public Dog(String name, Integer age) { + super(name,age); } @@ -16,13 +22,16 @@ public Dog(String name, Integer age) { * @param age age of this dog */ public Dog(Integer age) { + super("Dog name", age); } /** * @param name name of this dog */ public Dog(String name) { + super(name,0); + // this.name = name; } /** @@ -31,13 +40,14 @@ public Dog(String name) { * name is DogName * age is 0 */ - public Dog() { - } + //public Dog() { + // return null; + //} /** * @return bark as a string */ public String speak() { - return null; + return "Bark"; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java index 3c925da..05e954d 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java @@ -4,17 +4,24 @@ * Created by leon on 2/16/18. */ public abstract class Pet implements Animal { - /** - * nullary constructor - * by default, pet has age of 0; name of ""; - */ + private String name; + private Integer age; + private PetOwner owner; + public Pet() { + this.name = ""; + this.age = 0; + this.owner = null; } /** * @param name name of this pet */ public Pet(String name) { + this.name = ""; + this.age = 0; + this.owner = null; + } @@ -22,6 +29,10 @@ public Pet(String name) { * @param age age of this pet */ public Pet(int age) { + this.name = ""; + this.age = age; + this.owner = null; + } /** @@ -29,20 +40,26 @@ public Pet(int age) { * @param age age of this pet */ public Pet(String name, int age) { + this.name = name; + this.age = age; + this.owner = null; + } + /** * @return name of this pet */ public String getName() { - return null; + return name; } + /** * @return age of this pet */ public Integer getAge() { - return null; + return age; } /** @@ -50,12 +67,16 @@ public Integer getAge() { * ensure this instance of `Pet` is added to the owner's composite `pets` list */ public void setOwner(PetOwner newPetOwner) { + this.owner = newPetOwner; + if(owner != null){ + owner.addPet(this); + } } /** * @return PetOwner object whose composite `pets` collection contains this Pet instance */ public PetOwner getOwner() { - return null; + return owner; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java b/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java index 7bbf2ab..a874576 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java @@ -1,27 +1,46 @@ package com.zipcodewilmington.assessment1.part3; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * Created by leon on 2/16/18. */ public class PetOwner { + private String name; + private List pets; /** * @param name name of the owner of the Pet * @param pets array of Pet object */ public PetOwner(String name, Pet... pets) { + this.name = name; + this.pets = new ArrayList<>(); + if (pets != null) { + for (Pet pet : pets) { + addPet(pet); + } + } } /** * @param pet pet to be added to the composite collection of Pets */ public void addPet(Pet pet) { + if (pet != null && !pets.contains(pet)) { + pets.add(pet); + pet.setOwner(this); + } } /** * @param pet pet to be removed from the composite collection Pets */ public void removePet(Pet pet) { - + // return null; + //if(pet = 1 ) + //pets.remove(pet); } /** @@ -29,13 +48,15 @@ public void removePet(Pet pet) { * @return true if I own this pet */ public Boolean isOwnerOf(Pet pet) { - return null; + return pets.contains(pet); } /** * @return the age of the Pet object whose age field is the lowest amongst all Pets in this class */ public Integer getYoungetPetAge() { + //int youngest = pets.get(0).getAge(); + //for(int i = 1; i < pets.size();i++) return null; } @@ -46,7 +67,10 @@ public Integer getYoungetPetAge() { * @return the age of the Pet object whose age field is the highest amongst all Pets in this class */ public Integer getOldestPetAge() { + //int get oldest + return null; + } @@ -54,6 +78,7 @@ public Integer getOldestPetAge() { * @return the sum of ages of Pet objects stored in this class divided by the number of Pet object */ public Float getAveragePetAge() { + //need to revist this return null; } @@ -61,20 +86,20 @@ public Float getAveragePetAge() { * @return the number of Pet objects stored in this class */ public Integer getNumberOfPets() { - return null; + return pets.size(); } /** * @return the name property of the Pet */ public String getName() { - return null; + return name; } /** * @return array representation of animals owned by this PetOwner */ public Pet[] getPets() { - return null; + return pets.toArray(new Pet[0]); } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java b/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java index f881e9c..b8cbd48 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java @@ -5,7 +5,37 @@ public class Jumper { /* * Complete the function below. */ + +// Tariq, the Kangaroo, is trying to reach a flag that's flagHeight units above the ground. In his attempt to reach the flag, +// Tariq can make any number of jumps up the rock wall where it's mounted; however, he can only move up the wall (meaning he cannot overshoot the flag and move down to reach it). There are 2 types of jumps: +// +// A jump of height 1. +// A jump of height jumpHeight. +// Tariq wants your help determining the minimum number of jumps it will take him to collect the flag. Complete the jumps function in your editor. It has 2 parameters: +// +// An integer, flagHeight, the height of the flag. +// An integer, jumpHeight, the number of units he ascends in a jump of type 2. +// It must return an integer denoting the minimum number of times Tariq must jump to collect the flag. +// +// k = flag height and j = jump height. j = 1 unit so if j = 1 return k +// jumps and a jump counter public int jumps(int k, int j) { - return -1; - } -} + if (j == 1) { + return k; + } + int jumps = 0; + long currentHeight = 0; + + while(currentHeight < k) { + if(currentHeight + j <= k) { + currentHeight += j; + } else { + currentHeight++; + } + jumps++; + } + return jumps; + //return -1; + } + } + diff --git a/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java b/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java index 89e2016..963879a 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java @@ -3,6 +3,26 @@ public class Palindrome { public Integer countPalindromes(String input){ - return null; + int count = 0; + int i = input.length(); + + for (int center = 0; center < 2 * i - 1; center++) { + int left = center / 2; + int right = left + center % 2; + + while (left >= 0 && right < i && input.charAt(left) == input.charAt(right)) { + count++; + left--; + right++; + } + } + + return count; + //return null; } } + + +//https://stackoverflow.com/questions/28001132/checking-if-a-string-is-a-palindrome-in-java +//https://www.geeksforgeeks.org/java-program-to-check-whether-a-string-is-a-palindrome/ +