diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java b/src/main/java/com/zipcodewilmington/assessment1/part1/BasicArrayUtils.java index ef714b5..c42c338 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]; } /** @@ -17,7 +18,8 @@ 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,8 @@ 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 +36,7 @@ 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..78a184b 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 str.substring(0,1).toUpperCase() + 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; + StringBuilder s = new StringBuilder(); + return s.append(str).reverse().toString(); } /** @@ -25,7 +27,8 @@ 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; + return camelCase(reverse(str)); + } @@ -34,7 +37,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 +46,20 @@ 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..eaf4350 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; + Integer results =0; + for(Integer ele: intArray){ + results += ele; + } + return results; } /** @@ -17,7 +21,12 @@ public static Integer getSum(Integer[] intArray) { * @return the product of `intArray` */ public static Integer getProduct(Integer[] intArray) { - return null; + + Integer results =1; + for(Integer ele: intArray){ + results *= ele; + } + return results; } /** @@ -25,6 +34,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; + + + return (double) (getSum(intArray) / 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..07f1401 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; + Integer results =0; + for(int i =0; i<= n; i++){ + results += i; + } + + return results; } /** @@ -19,7 +24,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; + + Integer results =1; + for(int i =1; i<= n; i++){ + results *= i; + } + + return results; } /** @@ -27,6 +38,8 @@ public static Integer getProductOfN(Integer n) { * @return integer with identical digits in the reverse order */ public static Integer reverseDigits(Integer val) { - return null; + StringBuilder s = new StringBuilder(); + String numReversed = s.append(val.toString()).reverse().toString(); + return Integer.parseInt(numReversed); } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java b/src/main/java/com/zipcodewilmington/assessment1/part1/RockPaperSissorsEvaluator.java index 9495445..49d2ec5 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 results = ""; + + switch(handSign){ + case ROCK: + results = PAPER; + break; + case PAPER: + results = SCISSOR; + break; + case SCISSOR: + results = ROCK; + break; + } + + return results; } /** @@ -21,7 +35,21 @@ public String getWinningMove(String handSign) { * @return the respective losing move */ public String getLosingMove(String handSign) { - return null; + String results = ""; + + switch(handSign){ + case ROCK: + results = SCISSOR; + break; + case PAPER: + results = ROCK; + break; + case SCISSOR: + results = PAPER; + break; + } + + return results; } /** @@ -30,6 +58,9 @@ 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; + if (getWinningMove(handSignOfPlayer1).equals(handSignOfPlayer2)) { + return handSignOfPlayer2; + } + return 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..38020d6 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,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; + Integer count = 0; + for(Object object : objectArray){ + if(object.equals(objectToCount)){ + count++; + } + } + return count; } /** @@ -21,7 +31,16 @@ 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; + ArrayList arrayList = new ArrayList<>(); + for(Object object : objectArray){ + if(!object.equals(objectToRemove)){ + arrayList.add((Integer) object); + } + + } +// return null; + return arrayList.toArray(new Integer[0]); + } /** @@ -30,7 +49,20 @@ 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; + Object results = null; + int mostOccured = 1; + for(int i = 0; i mostOccured){ + results = objectArray[i]; + } + } + return results; } @@ -40,7 +72,20 @@ 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; + Object results = null; + int leastOccured = 1; + for(int i = 0; i results = new ArrayList<>(); + int count =0; + for(int i =0; i< objectArray.length; i++){ + results.add((Integer) objectArray[i]); + //count++; + } + for(int i =0; i results = new ArrayList(); + + for(Integer ele: ints){ + if(ele % 2==1){ + results.add(ele); + } + } + + return results.toArray(new Integer[0]); } /** @@ -19,7 +29,15 @@ 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; + ArrayList results = new ArrayList(); + + for(Integer ele: ints){ + if(ele % 2==0){ + results.add(ele); + } + } + + return results.toArray(new Integer[results.size()]); } /** @@ -28,7 +46,15 @@ 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; + ArrayList results = new ArrayList(); + + for(Integer ele: ints){ + if(ele % 3 !=0){ + results.add(ele); + } + } + + return results.toArray(new Integer[0]); } /** @@ -38,6 +64,14 @@ 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; + ArrayList results = new ArrayList(); + + for(Integer ele: ints){ + if(ele % multiple !=0){ + results.add(ele); + } + } + + return results.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..3c2295e 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(" "); } @@ -21,7 +22,8 @@ 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; + + return getWords(sentence)[0]; } /** @@ -30,7 +32,8 @@ 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; + StringBuilder s = new StringBuilder(); + return s.append(getFirstWord(sentence)).reverse().toString(); } /** @@ -39,7 +42,8 @@ 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 firstWordReversed = reverseFirstWord(sentence); + return firstWordReversed.substring(0,1).toUpperCase() + firstWordReversed.substring(1); } @@ -50,7 +54,8 @@ 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; + + 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..38d46b1 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Cat.java @@ -8,20 +8,26 @@ public class Cat extends Pet { * @param name name of this Cat * @param age age of this Cat */ + private String name = ""; + private Integer age = 0; public Cat(String name, Integer age) { - + this.name = name; + this.age =age; } /** * @param age age of this Cat */ public Cat(Integer age) { + this.age =age; + this.name = "Cat name"; } /** * @param name name of this Cat */ public Cat(String name) { + this.name= name; } @@ -32,12 +38,31 @@ public Cat(String name) { * age is 0 */ public Cat() { + this.name = "Cat name"; + } + + @Override + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; } /** * @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..a1ba387 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Dog.java @@ -7,22 +7,60 @@ public class Dog extends Pet { /** * @param name name of this Dog * @param age age of this dog + * */ + private String name=""; + private Integer age =0; + //private PetOwner owner; + +// @Override +// public PetOwner getOwner() { +// return this.owner; +// } +// +// @Override +// public void setOwner(PetOwner owner) { +// this.owner = owner; +// } + public Dog(String name, Integer age) { +//super(name, age); + this.name =name; + this.age =age; + } + + @Override + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + @Override + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; } /** * @param age age of this dog */ public Dog(Integer age) { + this.age = age; + this.name = "Dog name"; } /** * @param name name of this dog */ public Dog(String name) { - + this.name =name; + this.age =this.age; } /** @@ -32,12 +70,14 @@ 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"; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java index 3c925da..cde76d3 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/Pet.java @@ -8,13 +8,21 @@ public abstract class Pet implements Animal { * nullary constructor * by default, pet has age of 0; name of ""; */ + private String name = ""; + private Integer age =0; + private PetOwner owner = null; + + public Pet() { + } /** * @param name name of this pet */ public Pet(String name) { + this.name =name; + this.age =0; } @@ -22,6 +30,7 @@ public Pet(String name) { * @param age age of this pet */ public Pet(int age) { + this.age =age; } /** @@ -29,20 +38,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 this.name; } /** * @return age of this pet */ public Integer getAge() { - return null; + return this.age; } /** @@ -50,12 +61,19 @@ public Integer getAge() { * ensure this instance of `Pet` is added to the owner's composite `pets` list */ public void setOwner(PetOwner newPetOwner) { + // Pet pet = new Pet(this.name, this.age); + // this.owner = newPetOwner; + if(this.owner != newPetOwner) { + this.owner = newPetOwner; + // newPetOwner.addPet(this); + } } /** * @return PetOwner object whose composite `pets` collection contains this Pet instance */ public PetOwner getOwner() { - return null; +//return null; + return this.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..cf58b92 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part3/PetOwner.java @@ -1,5 +1,9 @@ package com.zipcodewilmington.assessment1.part3; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * Created by leon on 2/16/18. */ @@ -8,19 +12,67 @@ public class PetOwner { * @param name name of the owner of the Pet * @param pets array of Pet object */ + private String name; + //private Pet[] pets = new Pet[]; + public Pet[] pets; + +// public PetOwner() { +// } + + public PetOwner(String name, Pet... pets) { + this.name =name; + this.pets = pets; } /** * @param pet pet to be added to the composite collection of Pets */ public void addPet(Pet pet) { + + Pet newarr[]; + int count; + if(this.pets == null){ + newarr = new Pet[1]; + count =0; + }else{ + newarr = new Pet[pets.length + 1]; + count = pets.length; + } + + + for (int i = 0; i < count; i++){ + newarr[i] = pets[i]; + } + newarr[count] = pet; + + + this.pets = newarr; + } /** * @param pet pet to be removed from the composite collection Pets */ public void removePet(Pet pet) { + Pet newarr[] = null; + int count; + if(this.pets.length == 1){ + this.pets[0] = null; + + }else{ + newarr = new Pet[pets.length -1]; + count = pets.length; + for (int i = 0; i < count; i++){ + if(!pets[i].equals(pet)){ + newarr[i] = pets[i]; + } + + } + + this.pets = newarr; + + } } @@ -29,14 +81,27 @@ public void removePet(Pet pet) { * @return true if I own this pet */ public Boolean isOwnerOf(Pet pet) { - return null; + + for (int i = 0; i < this.pets.length; i++){ + if(pets[i].equals(pet)){ + return true; + } + } + return false; } /** * @return the age of the Pet object whose age field is the lowest amongst all Pets in this class */ public Integer getYoungetPetAge() { - return null; + + Integer youngestAge = 100; + for(int i =0; i< this.pets.length; i++){ + if(pets[i].getAge() <= youngestAge){ + youngestAge = pets[i].getAge(); + } + } + return youngestAge; } @@ -46,7 +111,13 @@ 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; + Integer youngestAge = 0; + for(int i =0; i< this.pets.length; i++){ + if(pets[i].getAge() >= youngestAge){ + youngestAge = pets[i].getAge(); + } + } + return youngestAge; } @@ -54,27 +125,38 @@ 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; + Float averagePetAge = 0.0F; + + for(int i =0; i< this.pets.length; i++){ + averagePetAge += pets[i].getAge(); + + } + return averagePetAge / this.pets.length; + + + } /** * @return the number of Pet objects stored in this class */ public Integer getNumberOfPets() { - return null; + return this.pets.length; } /** * @return the name property of the Pet */ public String getName() { - return null; + + return this.name; } /** * @return array representation of animals owned by this PetOwner */ public Pet[] getPets() { - return null; + + return this.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..038ed09 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part4/Jumper.java @@ -6,6 +6,15 @@ public class Jumper { * Complete the function below. */ public int jumps(int k, int j) { - return -1; + if(j == k){ + return 1; // if k equals j, then only one jump is required. + } + // find j jumps amount by dividing k/j + int divide = k /j; + //now we need to check how many 1 jumps. + // check how many 1 jumps by finding the remainder when dividing k and j + int remainder = k % j; + // add j amount of jumps to 1 jumps to get total amount of jumps to reach k + return divide + remainder; } } diff --git a/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java b/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java index 89e2016..ec4d994 100644 --- a/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java +++ b/src/main/java/com/zipcodewilmington/assessment1/part5/Palindrome.java @@ -3,6 +3,25 @@ public class Palindrome { public Integer countPalindromes(String input){ - return null; + int size = input.length();// all single characters in string are treated as palindromes. + int count = size; + for(int i=0; i