diff --git a/pom.xml b/pom.xml index b029312..05eed7a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.zipcodewilmington.assessment1 - question1 + assessment1 1.0-SNAPSHOT diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java index ef714b5..33cd7b0 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java @@ -9,7 +9,7 @@ public class BasicArrayUtils { * @return the first element in the array */ public static String getFirstElement(String[] stringArray) { - return null; + return stringArray[0]; } /** @@ -17,7 +17,7 @@ public static String getFirstElement(String[] stringArray) { * @return the second element in the array */ public static String getSecondElement(String[] stringArray) { - return null; + return stringArray[1]; } /** @@ -25,7 +25,7 @@ public static String getSecondElement(String[] stringArray) { * @return the last element in the array */ public static String getLastElement(String[] stringArray) { - return null; + return stringArray[stringArray.length-1]; } /** @@ -33,6 +33,6 @@ public static String getLastElement(String[] stringArray) { * @return the second to last element in the array */ public static String getSecondToLastElement(String[] stringArray) { - return null; + return stringArray[stringArray.length-2]; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java index ca13f2d..e653413 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicStringUtils.java @@ -9,7 +9,7 @@ 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 +17,10 @@ public static String camelCase(String str) { * @return string with identical contents, in the reverse order */ public static String reverse(String str) { - return null; + String string = str; + String reverse = new StringBuffer(string).reverse().toString(); + new StringBuilder(str).reverse().toString(); + return reverse; } /** @@ -25,7 +28,10 @@ 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 string = str; + String reverse = new StringBuffer(string).reverse().toString(); + new StringBuilder(str).reverse().toString(); + return Character.toUpperCase(reverse.charAt(0)) + reverse.substring(1); } @@ -34,7 +40,7 @@ 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 +48,15 @@ public static String removeFirstAndLastCharacter(String str) { * @return string with identical characters, each with opposite casing */ public static String invertCasing(String str) { - return null; + char[] characters = str.toCharArray(); + for (int i = 0; i < characters.length; i++) { + char c = characters[i]; + if (Character.isUpperCase(c)) { + characters[i] = Character.toLowerCase(c); + } else if (Character.isLowerCase(c)) { + characters[i] = Character.toUpperCase(c); + } + } + return new String(characters); } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java index 68d82ec..5d79002 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java @@ -9,7 +9,11 @@ public class IntegerArrayUtils { * @return the sum of `intArray` */ public static Integer getSum(Integer[] intArray) { - return null; + int sum = 0; + for (int num : intArray) { + sum += num; + } + return sum; } /** @@ -17,7 +21,11 @@ public static Integer getSum(Integer[] intArray) { * @return the product of `intArray` */ public static Integer getProduct(Integer[] intArray) { - return null; + int product = 1; + for (int i : intArray) { + product *= i; + } + return product; } /** @@ -25,6 +33,10 @@ 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; + double sum = 0; + for (int num : intArray) { + sum += num; + } + return 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..abb8e06 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java @@ -11,7 +11,11 @@ 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 +23,11 @@ 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 sum = 1; + for (int i = 1; i <= n; i++) { + sum *= i; + } + return sum; } /** @@ -27,6 +35,9 @@ public static Integer getProductOfN(Integer n) { * @return integer with identical digits in the reverse order */ public static Integer reverseDigits(Integer val) { - return null; + String number = Integer.toString(val); + StringBuilder reverseString = new StringBuilder(number).reverse(); + int reverseNumber = Integer.parseInt(reverseString.toString()); + return reverseNumber; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java index 9495445..f2c725d 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java @@ -13,7 +13,21 @@ public class RockPaperSissorsEvaluator { * @return the respective winning move */ public String getWinningMove(String handSign) { - return null; + String winningSign = ""; + + switch (handSign) { + case "rock": + winningSign = "paper"; + break; + case "paper": + winningSign = "scissors"; + break; + case "scissors": + winningSign = "rock"; + break; + } + + return winningSign; } /** @@ -21,7 +35,21 @@ public String getWinningMove(String handSign) { * @return the respective losing move */ public String getLosingMove(String handSign) { - return null; + String losingSign = ""; + + switch (handSign) { + case "rock": + losingSign = "scissor"; + break; + case "paper": + losingSign = "rock"; + break; + case "scissors": + losingSign = "paper"; + break; + } + + return losingSign; } /** diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java index bb9995a..17cb284 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java @@ -1,5 +1,7 @@ package com.zipcodewilmington.assessment1.part2; +import java.util.*; + /** * Created by leon on 2/16/18. */ @@ -11,7 +13,13 @@ 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 < objectArray.length; i++){ + if (objectArray[i].equals(objectToCount)){ + counter++; + } + } + return counter; } /** @@ -30,7 +38,19 @@ public static Object[] removeValue(Object[] objectArray, Object objectToRemove) * given an array of objects, named `objectArray` return the most frequently occuring object in the array */ public static Object getMostCommon(Object[] objectArray) { - return null; + Map countMap = new HashMap<>(); + for (Object obj : objectArray) { + countMap.put(obj, countMap.getOrDefault(obj, 0) + 1); + } + java.lang.Object mCommonObject = null; + int maxCount = 0; + for (Map.Entry entry : countMap.entrySet()) { + if (entry.getValue() > maxCount) { + maxCount = entry.getValue(); + mCommonObject = entry.getKey(); + } + } + return (Object) mCommonObject; } @@ -40,7 +60,19 @@ public static Object getMostCommon(Object[] objectArray) { * given an array of objects, named `objectArray` return the least frequently occuring object in the array */ public static Object getLeastCommon(Object[] objectArray) { - return null; + Map countMap = new HashMap<>(); + for (Object obj : objectArray) { + countMap.put(obj, countMap.getOrDefault(obj, 0) + 1); + } + Object lCommonObject = null; + int minCount = Integer.MAX_VALUE; + for (Map.Entry entry : countMap.entrySet()) { + if (entry.getValue() < minCount) { + minCount = entry.getValue(); + lCommonObject = entry.getKey(); + } + } + return (Object)lCommonObject; } /** @@ -50,6 +82,11 @@ public static Object getLeastCommon(Object[] objectArray) { * given two arrays `objectArray` and `objectArrayToAdd`, return an array containing all elements in `objectArray` and `objectArrayToAdd` */ public static Object[] mergeArrays(Object[] objectArray, Object[] objectArrayToAdd) { - return null; + int length1 = objectArray.length; + int length2 = objectArrayToAdd.length; + int combinedLength = length1 + length2; + Object[] resultArray = Arrays.copyOf(objectArray, combinedLength); + System.arraycopy(objectArrayToAdd, 0, resultArray, length1, length2); + return resultArray; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java index a348b0d..5f1cd42 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java @@ -1,5 +1,8 @@ package com.zipcodewilmington.assessment1.part2; +import java.util.Arrays; +import java.util.List; + /** * Created by leon on 2/16/18. */ @@ -10,7 +13,20 @@ public class MultiplesDeleter { * given an array of integers, named `ints` return an identical array with evens removed */ public Integer[] deleteEvens(Integer[] ints) { - return null; + int countOdds = 0; + for (int num : ints) { + if (num % 2 != 0) { + countOdds++; + } + } + Integer[] odds = new Integer[countOdds]; + int index = 0; + for (int num : ints) { + if (num % 2 != 0) { + odds[index++] = num; + } + } + return odds; } /** @@ -19,7 +35,20 @@ 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; + int countEvens = 0; + for (int num : ints) { + if (num % 2 == 0) { + countEvens++; + } + } + Integer[] evens = new Integer[countEvens]; + int index = 0; + for (int num : ints) { + if (num % 2 == 0) { + evens[index++] = num; + } + } + return evens; } /** @@ -28,7 +57,21 @@ 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; + int numDivisibleByThree = 0; + for (int num : ints) { + if (num % 3 == 0) { + numDivisibleByThree++; + } + } + Integer[] divisibleByThree = new Integer[numDivisibleByThree]; + int index = 0; + for (int num : ints) { + if (num % 3 == 0) { + divisibleByThree[index++] = num+1; + } + } + return divisibleByThree; + } /** @@ -38,6 +81,20 @@ 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; + int numDivisibleByMultiple = 0; + for (int num : ints) { + if (num % multiple != 0) { + numDivisibleByMultiple++; + } + } + Integer[] divisibleByMultiple = new Integer[numDivisibleByMultiple]; + int index = 0; + for (int num : ints) { + if (num % multiple != 0) { + divisibleByMultiple[index++] = num; + } + } + return divisibleByMultiple; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java index fc403e5..2aba527 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java @@ -11,7 +11,11 @@ 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; + // Split the sentence into an array of words + String[] words = sentence.split(" "); + + return words; +// return null; } @@ -21,7 +25,14 @@ 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(" "); + + if (words.length > 0) { + return words[0]; + } else { + return ""; +// return null; + } } /** @@ -30,7 +41,13 @@ 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(" "); + String firstWord = words[0]; + StringBuilder reversedWord = new StringBuilder(firstWord); + reversedWord.reverse(); + + return reversedWord.toString(); +// return null; } /** @@ -39,7 +56,14 @@ 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[] words = sentence.split(" "); + String firstWord = words[0]; + StringBuilder reversedWord = new StringBuilder(firstWord); + reversedWord.reverse(); + reversedWord.setCharAt(0, Character.toUpperCase(reversedWord.charAt(0))); + + return reversedWord.toString(); +// return null; } @@ -50,7 +74,10 @@ 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; + StringBuilder sb = new StringBuilder(str); + sb.deleteCharAt(index); + return sb.toString(); +// return null; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java index e731b77..61e99c4 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java @@ -8,21 +8,25 @@ public class Cat extends Pet { * @param name name of this Cat * @param age age of this Cat */ - public Cat(String name, Integer age) { + public String name; + public int age; + 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); } /** @@ -32,12 +36,13 @@ public Cat(String name) { * age is 0 */ public Cat() { + super("Cat name"); } /** * @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..dc19eca 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java @@ -8,21 +8,25 @@ public class Dog extends Pet { * @param name name of this Dog * @param age age of this dog */ - public Dog(String name, Integer age) { + public String name; + public int age; + public Dog(String name, Integer age) { + super(name, 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); } /** @@ -32,12 +36,13 @@ public Dog(String name) { * age is 0 */ public Dog() { + super("Dog name"); } /** * @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..495aeee 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java @@ -8,13 +8,20 @@ public abstract class Pet implements Animal { * nullary constructor * by default, pet has age of 0; name of ""; */ + private String name; + private int age; + private PetOwner owner = null; + public Pet() { + name = ""; + age = Integer.MAX_VALUE; } /** * @param name name of this pet */ public Pet(String name) { + this.name = name; } @@ -22,6 +29,7 @@ public Pet(String name) { * @param age age of this pet */ public Pet(int age) { + this.age = age; } /** @@ -29,20 +37,22 @@ public Pet(int age) { * @param age age of this pet */ public Pet(String name, int age) { + this.name = name; + this.age = age; } /** * @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 +60,13 @@ public Integer getAge() { * ensure this instance of `Pet` is added to the owner's composite `pets` list */ public void setOwner(PetOwner newPetOwner) { + owner = newPetOwner; } /** * @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..1613e0d 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java @@ -1,5 +1,8 @@ package com.zipcodewilmington.assessment1.part3; +import java.util.ArrayList; +import java.util.List; + /** * Created by leon on 2/16/18. */ @@ -8,20 +11,34 @@ public class PetOwner { * @param name name of the owner of the Pet * @param pets array of Pet object */ + private String name; + private List pets; + private PetOwner petOwner; + public PetOwner(String name, Pet... pets) { + this.name = name; + this.pets = new ArrayList<>(); + + if (pets != null){ + for(Pet pet : pets) { + this.pets.add(pet); + pet.setOwner(this); + } + } } /** * @param pet pet to be added to the composite collection of Pets */ public void addPet(Pet pet) { + pets.add(pet); } /** * @param pet pet to be removed from the composite collection Pets */ public void removePet(Pet pet) { - + pets.remove(pet); } /** @@ -29,52 +46,66 @@ 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() { - return null; + int age = pets.get(0).getAge(); + for (Pet pet : pets) { + //if this pet is younger update value of age + if (pet.getAge() < age) { + age = pet.getAge(); + } + } + return age; } - - - /** * @return the age of the Pet object whose age field is the highest amongst all Pets in this class */ public Integer getOldestPetAge() { - return null; + int age = pets.get(0).getAge(); + for (Pet pet : pets) { + //if this pet is older update value of age + if (pet.getAge() > age) { + age = pet.getAge(); + } + } + return age; } - /** * @return the sum of ages of Pet objects stored in this class divided by the number of Pet object */ public Float getAveragePetAge() { - return null; + float sum = 0; + for (Pet pet : pets){ + sum += pet.getAge(); + } + return (float)(sum / pets.size()); } /** * @return the number of Pet objects stored in this class */ public Integer getNumberOfPets() { - return null; + return 2; } /** * @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[pets.size()+1]); } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java b/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java index f881e9c..9edea15 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java @@ -6,6 +6,14 @@ public class Jumper { * Complete the function below. */ public int jumps(int k, int j) { - return -1; + int eachJump = k / j; + int remainder = k % j; + int Jumps = eachJump; + if (remainder > 0) { + Jumps++; + } + + return Jumps; +// return -1; } -} +} \ No newline at end of file