diff --git a/.classpath b/.classpath index 2846539..20c137d 100644 --- a/.classpath +++ b/.classpath @@ -8,10 +8,6 @@ - - - - - + diff --git a/build/classes/.gitignore b/build/classes/.gitignore index 4e7e508..c6ca2cf 100644 --- a/build/classes/.gitignore +++ b/build/classes/.gitignore @@ -1 +1 @@ -/controller/ +/service/ diff --git a/build/classes/controller/FlamesCheck.class b/build/classes/controller/FlamesCheck.class index fe7152f..c3bf8f9 100644 Binary files a/build/classes/controller/FlamesCheck.class and b/build/classes/controller/FlamesCheck.class differ diff --git a/build/classes/testing/TestFlamesCheckService.class b/build/classes/testing/TestFlamesCheckService.class new file mode 100644 index 0000000..45bcb27 Binary files /dev/null and b/build/classes/testing/TestFlamesCheckService.class differ diff --git a/src/controller/FlamesCheck.java b/src/controller/FlamesCheck.java index b9b9a0b..fb5b908 100644 --- a/src/controller/FlamesCheck.java +++ b/src/controller/FlamesCheck.java @@ -12,8 +12,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - - +import service.FlamesCheckService; @WebServlet("/flames") public class FlamesCheck extends HttpServlet { @@ -34,34 +33,34 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* - * Uncomment the below code to test your output - * String name1 = request.getParameter("your"); - * String name2 = request.getParameter("crush"); - * - * FlamesCheckService fcs = new FlamesCheckService(); - * - * char k = fcs.findFlames(name1,name2); - * - * if (k == 'f') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/friends.jsp" - * ); rd.forward(request, response); - * - * } else if (k == 'l') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/lovers.jsp") - * ; rd.forward(request, response); - * - * } else if (k == 'a') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( - * "/WEB-INF/views/affection.jsp"); rd.forward(request, response); - * - * } else if (k == 'm') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( - * "/WEB-INF/views/marriage.jsp"); rd.forward(request, response); - * - * } else if (k == 'e') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/enemies.jsp" - * ); rd.forward(request, response); - * - * } else if (k == 's') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( - * "/WEB-INF/views/siblings.jsp"); rd.forward(request, response); - * - * } - */ + * Uncomment the below code to test your output */ + String name1 = request.getParameter("your"); + String name2 = request.getParameter("crush"); + + FlamesCheckService fcs = new FlamesCheckService(); + + char k = fcs.findFlames(name1,name2); + + if (k == 'f') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/friends.jsp" + ); rd.forward(request, response); + + } else if (k == 'l') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/lovers.jsp") + ; rd.forward(request, response); + + } else if (k == 'a') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( + "/WEB-INF/views/affection.jsp"); rd.forward(request, response); + + } else if (k == 'm') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( + "/WEB-INF/views/marriage.jsp"); rd.forward(request, response); + + } else if (k == 'e') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/enemies.jsp" + ); rd.forward(request, response); + + } else if (k == 's') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( + "/WEB-INF/views/siblings.jsp"); rd.forward(request, response); + + } + } } diff --git a/src/service/FlamesCheckService.java b/src/service/FlamesCheckService.java index a8c006a..cd65c32 100644 --- a/src/service/FlamesCheckService.java +++ b/src/service/FlamesCheckService.java @@ -7,3 +7,111 @@ // You must return only the following values ['f','l','a','m','e','s'] // change the return value at the end of the method corresponding to your return value +import java.util.*; + +public class FlamesCheckService{ + + public char findFlames(String name1, String name2){ + + name1 = name1.toLowerCase(); + name2 = name2.toLowerCase(); + + + // storing all the unique characters of name1 in set + Set wordsName1 = new HashSet(); + + for(int i =0; i wordsName2 = new HashSet(); + + for(int i =0; i value = wordsName1.iterator(); + while (value.hasNext()) { + char word = value.next(); + if(!wordsName2.contains(word)){ + name1MinusName2 += Character.toString(word); + } + } + + // iterating over wordsName1 to get characters which are not in name2 + Iterator value2 = wordsName2.iterator(); + while (value2.hasNext()) { + char word = value2.next(); + if(!wordsName1.contains(word)){ + name2MinusName1 += Character.toString(word); + } + } + + int count = name1MinusName2.length() + name2MinusName1.length(); + + + + String flames = "flames"; + + // iterate over flames till we get last character from flames + while(flames.length() > 1) { + String letter = ""; + + // variable to keep track where the pointer lies while iterating over flames so that the character at index count + // can be removed + int flamesCount = 0; + + // iterating over flames and finding the character which lies at index count. + while(flamesCount < count) { + for(int i = 0; i