HackerRank in a String!

QUESTION

We say that a string, s, contains the word hackerrank if a subsequence of the characters in s spell the word hackerrank. \n\nFor example, haacckkerrannkk does contain hackerrank, but haacckkerannk does not (the characters all appear in the same order, but it’s missing a second r).\n\nMore formally, let p0,p1,…,p9 be the respective indices of h, a, c, k, e, r, r, a, n, k in string s. If p0<p1<p2<..<p9 is true, then s contains hackerrank.\n\nYou must answer q queries, where each query i consists of a string, si. For each query, print YES on a new line if si contains hackerrank; otherwise, print NO instead.\n\nInput Format\n\nThe first line contains an integer denoting q(the number of queries). \nEach line i of the q subsequent lines contains a single string denoting si.\n\nConstraints\n2<=q<=10^2 \n\n10<=|si|<=10^4\n\nOutput Format\n\nFor each query, print YES on a new line if si contains hackerrank; otherwise, print NO instead.

ANSWER

import java.util.Scanner;

public class TestClass {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int q = scan.nextInt();
        while (q-- > 0) {
            String str = scan.next();
            System.out.println(subsequenceExists(str) ? "YES" : "NO");
        }
        scan.close();
    }
    
    private static boolean subsequenceExists(String str) {
        String hackerrank = "hackerrank";
        int index = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == hackerrank.charAt(index)) {
                index++;
            }
            if (index == hackerrank.length()) {
                return true;
            }
        }
        return false;
    }
}
Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
CHP Adblock Detector Plugin | Codehelppro