Greek Varak Ответов: 2

[C#] проблема, связанная с гласными и согласными


Madhan has been a given a problem by his brother Jayi .The problem is related to strings.
Now he gives Madhan a long String S which consists of lowercase English Alphabets and wants him to tell the minimum size of substring such that all the substrings of that size in S have at least K Consonants(Non-vowels) in them.
If none of the subArray size satisfy the above condition ,return -1.

Input Format
Your function contains two arguments a String S and an Integer K.
First line of input contains a String S.
Second line of input contains an Integer K.

Constraints
1 <= |S| <= 100000
1 <= K <= 10000

Output Format
You must return an Integer denoting the answer to the problem.

Sample TestCase 1
Input:

ritikisagoodboy
4


Output:

9

Explanation

All substrings of length 9 have greater or equal to 4 non-vowels in them and this is the minimum size that we can have.
In substring of size 8 .. the substring ''ikisagoo'' has only 3 non-vowels therefore it violates the condition.


Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class CandidateCode {

 static int Consonant(string input1,int input2)
    {
    	//code to be written 
    }

static void Main(String[] args) {
    int output;
    string ip1;
    ip1 = Console.ReadLine();
    int ip2;
    ip2 = Convert.ToInt32(Console.ReadLine());
    output = Consonant(ip1,ip2);
    Console.WriteLine(output);
    }

Не мог бы кто-нибудь помочь мне в решении этой проблемы?...

2 Ответов

Рейтинг:
13

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


bapay

привет Permalink не могли бы вы прояснить эту проблему . Я даже этого не понимаю

OriginalGriff

Я подозреваю, что вы разместили это в совершенно неправильном месте ...

Рейтинг:
0

Member 13549143

Это может помочь


public static int Consonant(String input1,int input2)
    {
       int consonant = 0;
       int total =-1;
       int count =0;
       String str="";
       int tot_substring =0;
  for (count=1;count<input1.length();count++)
  {
      int val=0;
      tot_substring=subStringCnt(input1,count);
    for (int j=0; j<input1.length(); j++) {
         consonant=0;
         str=input1.substring(j, Math.min(j + count, input1.length()));
          
         if(str.length()==count)
         {
             for (int i = 0; i < str.length(); i++) {
           if (isConsanant(str.charAt(i))) {
             consonant++;
             if (consonant >= input2){ val++; total=count;  break; }
              
           }
      }
     
    }
     
}
if(val==tot_substring) { break; }
}
  return total;
}
  public static boolean isConsanant(char c){
    String cons = "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ";
    return cons.contains(Character.toString(c));
}
 
public static int subStringCnt(String str, int len)
{
    int cnt=0;
    String new_str="";
    for (int j=0; j<str.length(); j++) {
       new_str=str.substring(j, Math.min(j + len, str.length()));
        
       if(new_str.length()==len)
       {
            cnt++;
       }
     
}
return cnt;
}