jeudi 4 août 2022

Can someone please explain me the each step of below code I am new to coding [closed]

/**

  • Using the Java language, have the function PatternChaser(str) take str which will be a string and return the longest
  • pattern within the string. A pattern for this challenge will be defined as: if at least 2 or more adjacent characters
  • within the string repeat at least twice. So for example "aabecaa" contains the pattern aa, on the other hand
  • "abbbaac" doesn't contain any pattern. Your program should return yes/no pattern/null.
  • So if str were "aabejiabkfabed" the output should be yes abe. If str were "123224" the output should return no null.
  • The string may either contain all characters (a through z only), integers, or both.
  • But the parameter will always be a string type. The maximum length for the string being passed in will be
  • 20 characters. If a string for example is "aa2bbbaacbbb" the pattern is "bbb" and not "aa".
  • You must always return the longest pattern possible.

*/

class PatternChaser {
    String PatternChaser(String str) {
        String pattern = null;
        int patternCount;

        for (int i = 0; i < str.length() - 1; i++) {
            for (int j = i + 1; j < str.length(); j++) {
                String subStr = str.substring(i, j + 1);
                patternCount = 1;

                for (int k = 0; k < str.length() - subStr.length() + 1; k++) {
                    if (k == i) continue;
                    if (subStr.equals(str.substring(k, k + subStr.length()))) {
                        patternCount++;
                    }
                }

                if (patternCount >= 2 && (pattern == null || pattern.length() < subStr.length())) {
                    pattern = subStr;
                }
            }
        }


        return pattern != null ? "yes " + pattern : "no null";

    }

    public static void main(String[] args) {
        // keep this function call here
        Scanner s = new Scanner(System.in);
        PatternChaser c = new PatternChaser();
        System.out.print(c.PatternChaser(s.nextLine()));
    }
}

Aucun commentaire:

Enregistrer un commentaire