HackerRank in a String! Problem Solution Yashwant Parihar, April 24, 2023April 28, 2023 In this post, we will solve HackerRank in a String! Problem Solution.We say that a string contains the word hackerrank if a subsequence of its characters spell the word hackerrank. Remeber that a subsequence maintains the order of characters selected from a sequence.More formally, let p[0], p[1],…, p[9] be the respective indices of h, a, c, k, e, r, r, a, n, k in string s. If p[0] < p[1] < p[2] < ··· < p[9] is true, then s contains hackerrank.For each query, print YES on a new line if the string contains hackerrank, otherwise, printNO.Examples = haacckkerrannkkThis contains a subsequence of all of the characters in the proper order. Answer YESs = haacckkerannkThis is missing the second ‘r’. Answer NO.s hccaakkerrannkkThere is no ‘c’ after the first occurrence of an ‘a’, so answer NO.Function DescriptionComplete the hackerrankInString function in the editor below.hackerrankInString has the following parameter(s):string s: a stringReturnsstring: YES or NOInput FormatThe first line contains an integer q, the number of queries.Each of the next a lines contains a single query string s.Sample Input 02 hereiamstackerrank hackerworld Sample Output 0YES NO Explanation 0We perform the following q = 2 queries:s = hereiamstackerrankThe characters of hackerrank are bolded in the string above. Because the string contains all the characters in hackerrank in the same exact order as they appear in hackerrank, we return YES.s = hackerworld does not contain the last three characters of hackerrank, so wereturn NO.Sample Input 12 hhaacckkekraraannk rhbaasdndfsdskgbfefdbrsdfhuyatrjtcrtyytktjjt Sample Output 1YES NOHackerRank in a String! Problem SolutionHackerRank in a String! C Solution#include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> #define TRUE 1 #define FALSE 0 int main(){ int check[10]; for (int i = 0; i < 10; i++) { check[i] = FALSE; //printf("%d", check[i]); } int q; scanf("%d",&q); for(int a0 = 0; a0 < q; a0++){ char* s = (char *)malloc(512000 * sizeof(char)); scanf("%s",s); for (int i = 0; s[i] != '\0'; i++) { if (s[i] == 'h' && check[0] == FALSE) { check[0] = TRUE; //printf("'h' found at s[%d]\n", i); } else if ((s[i] == 'a') && (check[1] == FALSE) && (check[0] == TRUE)) { check[1] = TRUE; //printf("'a' found at s[%d]\n", i); } else if ((s[i] == 'c') && (check[2] == FALSE) && (check[1] == TRUE)) { check[2] = TRUE; //printf("'c' found at s[%d]\n", i); } else if ((s[i] == 'k') && (check[3] == FALSE) && (check[2] == TRUE)) { check[3] = TRUE; //printf("'k' found at s[%d]\n", i); } else if ((s[i] == 'e') && (check[4] == FALSE) && (check[3] == TRUE)) { check[4] = TRUE; //printf("'e' found at s[%d]\n", i); } else if ((s[i] == 'r') && (check[5] == FALSE) && (check[4] == TRUE)) { check[5] = TRUE; //printf("'r' found at s[%d]\n", i); } else if ((s[i] == 'r') && (check[6] == FALSE) && (check[5] == TRUE)) { check[6] = TRUE; //printf("'r' found at s[%d]\n", i); } else if ((s[i] == 'a') && (check[7] == FALSE) && (check[6] == TRUE)) { check[7] = TRUE; //printf("'a' found at s[%d]\n", i); } else if ((s[i] == 'n') && (check[8] == FALSE) && (check[7] == TRUE)) { check[8] = TRUE; //printf("'n' found at s[%d]\n", i); } else if ((s[i] == 'k') && (check[9] == FALSE) && (check[8] == TRUE)) { check[9] = TRUE; //printf("'k' found at s[%d]\n", i); break; } } if (check[9] == TRUE && a0 != q) { printf("YES\n"); } else if (check[9] == FALSE && a0 != q) { printf("NO\n"); } if (check[9] == TRUE && a0 == q) { printf("YES"); } else if (check[9] == FALSE && a0 == q) { printf("NO"); } for (int i = 0; i < 10; i++) { check[i] = FALSE; } } return 0; }HackerRank in a String! C++ Solution#include<iostream> #include<vector> #include<algorithm> #include<set> #include<string> using namespace std; int main() { int n,b=0,k=0; cin >> n; string s,h="hackerrank"; vector<string>v; for (int i = 0; i < n; i++) { cin >> s; v.push_back(s); } for (int i = 0; i < n; i++) { for (int j = 0; j < v[i].size(); j++) { if (v[i][j] == h[k]) { k = k + 1; if (k == 10) { cout << "YES" << endl;; break; } } } if (k != 10) { cout << "NO" << endl; } k = 0; } return 0; }HackerRank in a String! C Sharp Solutionusing System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { public void subSequence(char[] mainString, char[] subString, int n, int m) { int x = 0; for (int i = 0; i < n && x < m; i++) { if (subString[x] == mainString[i]) x++; } if (x == m) Console.WriteLine("YES"); else Console.WriteLine("NO"); } static void Main(String[] args) { Solution sol = new Solution(); int q = Convert.ToInt32(Console.ReadLine()); string p = "hackerrank"; char[] sub = p.ToCharArray(); for (int a0 = 0; a0 < q; a0++) { string s = Console.ReadLine(); char[] main = s.ToCharArray(); sol.subSequence(main, sub, main.Length, sub.Length); } } }HackerRank in a String! Java Solutionimport java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int q = in.nextInt(); char[] hr = "hackerrank".toCharArray(); for(int a0 = 0; a0 < q; a0++){ char[] test = in.next().toCharArray(); int i = 0, j = 0; while (i < hr.length && j < test.length){ if (hr[i] == test[j]){ i++; j++; } else { j++; } } if (i == hr.length) System.out.println("YES"); else System.out.println("NO"); } } }HackerRank in a String! JavaScript Solutionprocess.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("\n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// function main() { var q = parseInt(readLine()); for(var a0 = 0; a0 < q; a0++){ var s = readLine(); var sArray = s.split(''); // your code goes here check(sArray); } } function check(array) { var helperArray = []; var correctString = 'hackerrank'; var correctArray = correctString.split(''); var temp, n = 1; var length = array.length; for (var i = 0; i < length; i++) { temp = array.pop(); if (temp === correctString[correctString.length - n]) { n++; helperArray.unshift(temp); } } if (helperArray.length === correctArray.length) { console.log('YES') } else { console.log('NO') } }HackerRank in a String! Python Solution#!/bin/python3 import sys q = int(input().strip()) word = "hackerrank" for a0 in range(q): s = input().strip() counter = 0 for i in s: if (counter >= len(word)): break; if (i == word[counter]): counter += 1 if (counter >= len(word)): print("YES") else: print("NO") Other SolutionsHackerRank Quicksort 1 – Partition SolutionHackerRank Pangrams Problem Solution c C# C++ HackerRank Solutions java javascript python CcppCSharpHackerrank Solutionsjavajavascriptpython