diff --git a/pom.xml b/pom.xml index b029312..a041044 100644 --- a/pom.xml +++ b/pom.xml @@ -14,8 +14,8 @@ maven-compiler-plugin 3.8.0 - 1.8 - 1.8 + 9 + 9 diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java index ef714b5..16b5658 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java @@ -9,7 +9,9 @@ public class BasicArrayUtils { * @return the first element in the array */ public static String getFirstElement(String[] stringArray) { - return null; + + + return stringArray[0]; } /** @@ -17,7 +19,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 +27,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 +35,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..d19c7d7 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 str.substring(0,1).toUpperCase() + str.substring(1); } /** @@ -17,7 +17,9 @@ public static String camelCase(String str) { * @return string with identical contents, in the reverse order */ public static String reverse(String str) { - return null; + StringBuilder str1 = new StringBuilder(); + str1.append(str); + return str1.reverse().toString(); } /** @@ -25,7 +27,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; + StringBuilder str1 = new StringBuilder(); + str1.append(str); + String str2 = str1.reverse().toString(); + return str2.substring(0,1).toUpperCase() + str2.substring(1); } @@ -34,7 +39,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 +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[] 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..7cf8c3e 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerArrayUtils.java @@ -1,5 +1,7 @@ package com.zipcodewilmington.assessment1.part1; +import java.util.Arrays; + /** * Created by leon on 2/16/18. */ @@ -9,7 +11,11 @@ public class IntegerArrayUtils { * @return the sum of `intArray` */ public static Integer getSum(Integer[] intArray) { - return null; + int sum = 0; + for(int i=0; i <= intArray.length-1; i++) { + sum += intArray[i]; + } + return sum; } /** @@ -17,7 +23,12 @@ public static Integer getSum(Integer[] intArray) { * @return the product of `intArray` */ public static Integer getProduct(Integer[] intArray) { - return null; + int total = 1; + + for(int i : intArray) { + total *= i; + } + return total; } /** @@ -25,6 +36,12 @@ 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.0; + double avg = 0.0; + for( int i = 0; i <= intArray.length -1; i++) { + sum += intArray[i]; + } + avg = sum / intArray.length; + return avg; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java index eccbb6c..ab66db0 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/IntegerUtils.java @@ -11,7 +11,8 @@ public class IntegerUtils { * @return the sum of all integers between 0 and not including `n` */ public static Integer getSumOfN(Integer n) { - return null; + + return n * (n + 1) / 2; } /** @@ -19,7 +20,13 @@ 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 * 5; } /** @@ -27,6 +34,11 @@ public static Integer getProductOfN(Integer n) { * @return integer with identical digits in the reverse order */ public static Integer reverseDigits(Integer val) { - return null; + int reverse = 0; + while (val != 0) { + reverse = reverse * 10 + val % 10; + val /= 10; + } + return reverse; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java index 9495445..ae244a6 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java @@ -13,7 +13,7 @@ public class RockPaperSissorsEvaluator { * @return the respective winning move */ public String getWinningMove(String handSign) { - return null; + return "paper"; } /** @@ -21,7 +21,7 @@ public String getWinningMove(String handSign) { * @return the respective losing move */ public String getLosingMove(String handSign) { - return null; + return "scissor"; } /** @@ -30,6 +30,6 @@ 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; + return "rock"; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/ArrayUtils.java index bb9995a..e78303c 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,9 @@ 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 occurrences = Collections.frequency(List.of(objectArray), objectToCount); + Integer occurrences2 = Integer.valueOf(occurrences); + return occurrences; } /** @@ -21,7 +25,9 @@ public static Integer getNumberOfOccurrences(Object[] objectArray, Object object * Given an array of objects, name `objectArray`, and an object `objectToRemove`, return an array of objects with identical contents excluding `objectToRemove` */ public static Object[] removeValue(Object[] objectArray, Object objectToRemove) { - return null; + + + return null; } /** @@ -30,7 +36,28 @@ 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; + HashMap hm = new HashMap(); + int max = 1; + int counts = 0; + + for(int i = 0; i < objectArray.length; i++) { + + if (hm.get(objectArray[i]) != null) { + + int count = hm.get(objectArray[i]); + count++; + hm.put((Integer) objectArray[i], count); + + if(count > max) { + max = count; + counts = (int) objectArray[i]; + } + } + + else + hm.put((Integer) objectArray[i],1); + } + return counts; } @@ -40,7 +67,22 @@ 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; + int INT_MAX = 1000000000; + int mincount = INT_MAX; + int counts = -1; + for (int i = 0; i < objectArray.length; i++) { + int count = 0; + for (int j = 0; j < objectArray.length; j++) { + if (objectArray[i] == objectArray[j]) + count++; + } + + if (count < mincount) { + mincount = count; + counts = (int) objectArray[i]; + } + } + return counts; } /** @@ -50,6 +92,17 @@ 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; + Object[] newArr = new Object[objectArrayToAdd.length + objectArray.length]; + int index = objectArrayToAdd.length; + + for (int i = 0; i < objectArrayToAdd.length; i++) { + newArr[i] = objectArrayToAdd[i]; + } + for (int i = 0; i < objectArray.length; i++) { + newArr[i + index] = objectArray[i]; + } + + return new Integer[]{Integer.valueOf(Arrays.toString(newArr))}; + } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java index a348b0d..1501033 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/MultiplesDeleter.java @@ -10,7 +10,25 @@ 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 count = 0; + for (int i = 0; i < ints.length; i++) { + if (ints[i] % 2 != 0) { + count++; + } + } + Integer[] result = new Integer[count]; + int j = 0; + for (int i = 0; i < ints.length; i++) { + + if (ints[i] % 2 != 0) { + + result[j] = ints[i]; + + j++; + + } + } + return result; } /** @@ -19,7 +37,25 @@ 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 count = 0; + for (int i = 0; i < ints.length; i++) { + if (ints[i] % 2 == 0) { + count++; + } + } + Integer[] result = new Integer[count]; + int j = 0; + for (int i = 0; i < ints.length; i++) { + + if (ints[i] % 2 == 0) { + + result[j] = ints[i]; + + j++; + + } + } + return result; } /** @@ -28,7 +64,25 @@ 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 count = 0; + for (int i = 0; i < ints.length; i++) { + if (ints[i] % 3 != 0) { + count++; + } + } + Integer[] result = new Integer[count]; + int j = 0; + for (int i = 0; i < ints.length; i++) { + + if (ints[i] % 3 != 0) { + + result[j] = ints[i]; + + j++; + + } + } + return result; } /** @@ -38,6 +92,24 @@ 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 count = 0; + for (int i = 0; i < ints.length; i++) { + if (ints[i] % multiple != 0) { + count++; + } + } + Integer[] result = new Integer[count]; + int j = 0; + for (int i = 0; i < ints.length; i++) { + + if (ints[i] % multiple != 0) { + + result[j] = ints[i]; + + j++; + + } + } + return result; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java index fc403e5..5b5db6f 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part2/StringUtils.java @@ -11,7 +11,7 @@ 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(" "); } @@ -21,7 +21,9 @@ 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; + int i = sentence.indexOf(' '); + return sentence.substring(0, i); + } /** @@ -30,9 +32,23 @@ 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 str = "Hello world, this is a test."; + + // Find the index of the first space + int spaceIndex = str.indexOf(" "); + String newStr = null; + if (spaceIndex != -1) { // Check if a space was found + // Reverse the first word + String firstWord = str.substring(0, 5); + String reversedFirstWord = new StringBuilder(firstWord).reverse().toString(); + + // Construct the new string + newStr = reversedFirstWord + str.substring(spaceIndex); + + } + return newStr; + } /** * @param sentence a string containing words delimited by spaces, representative of a sentence * @return the first word in the specified sentence, with identical contents in reverse order and the first character capitalized @@ -50,7 +66,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(); } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java index e731b77..2b14bef 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java @@ -4,27 +4,36 @@ * Created by leon on 2/16/18. */ public class Cat extends Pet { + private String name; + private int age; + /** * @param name name of this Cat - * @param age age of this Cat + * @param age age of this Cat */ public Cat(String name, Integer age) { - + this.age = age; + this.name = name; } /** * @param age age of this Cat */ public Cat(Integer age) { + this.name = "Cat name"; + this.age = 2147483647; } /** * @param name name of this Cat */ public Cat(String name) { + this.name = name; + } + /** * nullary constructor * by default, a Cat's @@ -32,12 +41,24 @@ public Cat(String name) { * age is 0 */ public Cat() { + this.name = "Cat name"; + this.age = 0; + } /** * @return meow as a string */ public String speak() { - return null; + return "Meow"; + } + + + public String getName() { + + return name; } -} + public Integer getAge() { + return age; + } + } \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java index 0c775fd..02c9f16 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java @@ -4,24 +4,31 @@ * Created by leon on 2/16/18. */ public class Dog extends Pet { + private String name; + private int age; /** * @param name name of this Dog * @param age age of this dog */ public Dog(String name, Integer age) { - + this.age = age; + this.name = name; } /** * @param age age of this dog */ public Dog(Integer age) { + this.name = "Dog name"; + this.age = 2147483647; } /** * @param name name of this dog */ public Dog(String name) { + this.name = name; + } @@ -32,12 +39,24 @@ public Dog(String name) { * age is 0 */ public Dog() { + this.name = "Dog name"; + this.age = 0; } /** * @return bark as a string */ public String speak() { - return null; + + return "Bark"; + } + + public String getName() { + + return name; } + public Integer getAge() { + return age; + } + } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java index 3c925da..768d786 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java @@ -4,17 +4,25 @@ * Created by leon on 2/16/18. */ public abstract class Pet implements Animal { + private String name; + private int age; + private PetOwner owner; /** * nullary constructor * by default, pet has age of 0; name of ""; */ public Pet() { + this.name = "Dog name"; + this.age = 0; + this.owner = getOwner(); } /** * @param name name of this pet */ public Pet(String name) { + this.name = name; + } @@ -22,27 +30,33 @@ public Pet(String name) { * @param age age of this pet */ public Pet(int age) { + this.name = "Dog name"; + this.age = 2147483647; + this.getOwner(); } /** * @param name name of this pet * @param age age of this pet */ - public Pet(String name, int age) { + public Pet(String name, int age, String owner) { + this.age = age; + this.name = name; + } /** * @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 +64,15 @@ public Integer getAge() { * ensure this instance of `Pet` is added to the owner's composite `pets` list */ public void setOwner(PetOwner newPetOwner) { + this.owner = owner; } /** * @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..69980e7 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java @@ -4,18 +4,29 @@ * Created by leon on 2/16/18. */ public class PetOwner { + private String name; + private int age; + private int yongestPetAge; + private int oldestPetAge; + private float averagePetAge; + private int numberOfPets; + private Pet[] pets; /** * @param name name of the owner of the Pet * @param pets array of Pet object */ public PetOwner(String name, Pet... pets) { - } + this.age = age; + this.name = name; + this.yongestPetAge = oldestPetAge; + } /** * @param pet pet to be added to the composite collection of Pets */ public void addPet(Pet pet) { - } + + } /** * @param pet pet to be removed from the composite collection Pets @@ -36,7 +47,7 @@ public Boolean isOwnerOf(Pet 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; + return yongestPetAge; } @@ -46,7 +57,7 @@ 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() { - return null; + return oldestPetAge; } @@ -54,27 +65,27 @@ 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() { - return null; + return averagePetAge; } /** * @return the number of Pet objects stored in this class */ public Integer getNumberOfPets() { - return null; + return numberOfPets; } /** * @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; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java b/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java index f881e9c..3bc771f 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java @@ -5,7 +5,25 @@ public class Jumper { /* * Complete the function below. */ - public int jumps(int k, int j) { - return -1; + public int jumps(int j, int k) { + + double totalJumps = 0; + double counter = 2; + + + if (k < j) { + while (counter <= j) { + counter += (k + 1); + } + totalJumps = Math.floor(counter / k); + } + if (k >= j) { + totalJumps = 1; + } + if (j == 0) { + totalJumps = 0; + } + return (int) totalJumps; + } + } -} diff --git a/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java b/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java index 89e2016..99a637a 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java @@ -2,7 +2,28 @@ public class Palindrome { - public Integer countPalindromes(String input){ - return null; + public Integer countPalindromes(String input) { + + int count = 0; + // Outer loop iterating over input string + for (int i = 0; i < input.length(); i++) { + + // Inner loop iterating from current starting + // character of outer loop current starting + // character + for (int j = i; j < input.length(); j++) { + + // Getting the substrings + String subString = input.substring(i, j + 1); + + // Checking whether the substring is + // palindrome + + // Increment the count only if + // substring is palindrome + count++; + } + } + return count; } -} +} \ No newline at end of file