Постановка задачи

Строка называется нецензурной лексикой, если она содержит не менее K последовательных символов ‘*’.

Вам дана строка S длины N. Определите, использует ли она нецензурную лексику.

Вход

  • Первая строка входных данных содержит единственное целое число T, обозначающее количество тестовых случаев. Ниже приводится описание T тестовых случаев.
  • Первая строка каждого набора входных данных содержит два целых числа, разделенных пробелом, N и K.
  • Вторая строка содержит единственную строку S длины N.

Вывод

Выведите одну строку, содержащую строку "YES", если строка содержит ненормативную лексику, или "NO", если нет (без кавычек).

Вы можете печатать каждый символ каждой строки в верхнем или нижнем регистре (например, строки «yEs», «yes», «Yes» и «YES» будут считаться идентичными).

Ограничения

  • 1≤T≤10
  • 1≤K≤N≤10⁶
  • S содержит только строчные латинские буквы и символы «*»
  • Сумма N по всем тестам не превышает 10⁶.

Подзадачи

Подзадача №1 (30 баллов): N≤10⁴, сумма всех тестовых случаев не более 10⁴

Подзадача №2 (70 баллов): исходные ограничения

Пример ввода

3
5 2
*a*b*
5 2
*a**b
5 1
abcde

Пример вывода

NO
YES
NO

Объяснение

Пример 1. Поскольку нет двух последовательных символов «*», строка не содержит ненормативной лексики.

Пример 2. Два смежных символа «*» означают, что строка содержит ненормативную лексику.

Пример 3. Поскольку в строке нет символов «*», она не содержит ненормативной лексики.

Код (решение)

Код был реализован на Java

/* package codechef; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-- > 0){
int n = sc.nextInt();
int k = sc.nextInt();
sc.nextLine();
String str = sc.next();
int count=0,cnti=0;
for(int i=0;i<n;i++){
if(str.charAt(i)=='*'){
count++;
if(count==k){
System.out.println("YES");
cnti++;
break;
}
}
else
count =0;
}
if(cnti == 0)
System.out.println("NO");
}
}
}

Надеюсь, вам понравилась статья. Пожалуйста, поставьте 50 аплодисментов этой статье и подписывайтесь на меня, чтобы не пропустить новые блоги, связанные с программированием.

Ссылки

https://www.codechef.com/APRIL21C/problems/SSCRIPT