MCPcopy Index your code
hub / github.com/Rohit91singh9/Coding-DP-DSA / main

Method main

minimumKeypadClickCount.java:22–69  ·  view source on GitHub ↗
(String[] args)

Source from the content-addressed store, hash-verified

20public class minimumKeypadClickCoun {
21
22 public static void main(String[] args) {
23 Scanner sc = new Scanner(System.in);
24 System.out.print("Enter the string: ");
25 String s = sc.next();
26 Letters[] letters = new Letters[26];
27 for (int i = 0; i < letters.length; i++) {
28 char c = (char) ('a' + i);
29 letters[i] = new Letters(c);
30 }
31 for (int i = 0; i < s.length(); i++) {
32 int index = s.charAt(i) - 'a';
33 letters[index].incrementFrequency(); }
34 for (int i = 0; i < letters.length - 1; i++) {
35 for (int j = 0; j < letters.length - i - 1; j++) {
36 int f1 = letters[j].getFrequency();
37 int f2 = letters[j+1].getFrequency();
38 if (f1 < f2) {
39 Letters temp = letters[i];
40 letters[i] = letters[j];
41 letters[j] = temp;
42 }
43 }
44 }
45 int answer = 0;
46 for (int i = 0; i < letters.length; i++) {
47 if (i < 9) {
48 answer += letters[i].getFrequency();
49 } else if (i < 18) {
50 answer += (letters[i].getFrequency() * 2);
51 }
52 else
53 {
54 answer += (letters[i].getFrequency() * 3);
55 }
56 }
57 System.out.println("Minimum clicks required: " + answer);
58 String[] keypad = {"", "", "", "", "", "", "", "", ""};
59 for (int i = 0; i < letters.length; i++) {
60 keypad[i % 9] += letters[i].getLetter();
61 } // print the keypad
62 System.out.println("\nkeypad:");
63 for (int i = 0; i < keypad.length; i++) {
64 System.out.print(keypad[i] + " ");
65 if (i % 3 == 2) {
66 System.out.println();
67 }
68 }
69 }
70 }
71
72// Let me know if any testcases fails i will update the code.

Callers

nothing calls this directly

Calls 3

incrementFrequencyMethod · 0.80
getFrequencyMethod · 0.80
getLetterMethod · 0.80

Tested by

no test coverage detected