ALPHABET - Editorial

I want to know whats wrond with my solution. CodeChef did not accept this solution.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
class Jeff
{
public static void main(String args[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println(“ENTER LETTERS THAT JEFF CAN READ”);
String jVoc=br.readLine();
System.out.println(“ENTER NUMBER OF WORDS IN THE BOOK”);
int num=Integer.parseInt(br.readLine());
String word;
for(int i=1;i<=num;i++)
{
System.out.println("ENTER WORD "+i);
word=br.readLine();
boolean canRead=true;
for(int j=0;j<=jVoc.length()-1;j++)
{
char ch=jVoc.charAt(j);
if(word.indexOf(ch)==-1)
{
canRead=false;
break;
}
}
if(canRead==true)
System.out.println(“YES”);
else System.out.println(“NO”);
}

}

}

#include<stdio.h>
int main()
{
char s[27];
scanf("%s",s);
int n;
scanf("%d",&n);
while(n>0)
{
char ch[13];
scanf("%s",ch);
int count=0,i,j;
for(i=0;ch[i]!=’\0’;i++)
{
for(j=0;s[j]!=’\0’;j++)
{
if(ch[i]==s[j])
{
count++;
break;
}
}
}
one:
if(count==i)

		printf("YES\n");
	else
		printf("NO\n");
	n--;
}

return 0;
}

what is wrong in this code can anyone help me plz

@alphajazz-

The first glaring error I saw was that code printed “YES” and “NO” instead of “Yes” or “No”

Fix that and try again :slight_smile:

2 Likes

My approach was to put the given letters into a set and then take union for every new word

If the length of union set equals the length of given letters then ‘Yes’ else ‘No’

Hi… I got output still if i try to submit its showing wrong answer…Can anyone please help me to fix this issue… Here is my code.

checkString=input();

testCase=int(input());

for i in range (testCase):

inputString=input();

count=0;

for i in range(0,len(inputString)):

if inputString[i] in checkString:

&nbsp         count+=1;

if(count==len(checkString)):

print(“Yes”);

else:

print(“No”);

@aniesta

Codechef doesn’t want you to type all those display messages in your program.
Just remove those lines and print only the answer.

Hello everyone ,
I am getting a wrong ans .
please help
Here is my work
#include <stdio.h>
#include <string.h>
int main()
{
int t,len1,len2;
char arr[27];
//scanf("%d",&n);
scanf("%s",arr);
len1= strlen(arr);
scanf("%d",&t);
while(t–)
{
char arr2[13];
int flag=0;
len2= strlen(arr2);
scanf("%s",arr2);
for(int i=0;i<len2;i++)
{
for(int j=0;j<len1;j++)
{
if(arr2[i]==arr[j])
{
flag++;
break;
}
}
}

	if(flag==len2)
		printf("Yes\n");
	else
		printf("No\n");
}

}

#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
int n;
cin>>n;
string w;
for(int i=0;i<n;i++)
{
int flag=0;
cin>>w;
for(int i=0;i<s.length();i++)
{
for(int j=0;j<w.length();j++)
{
if(s[i]==w[j])
{
flag=0;
break;
}
else
{
flag=1;
}
}
}
if(flag==1)
cout<<“No”<<endl;
else
cout<<“Yes”<<endl;
}
}

what is wrong with solution can anyone help me?

I hope this will Help You alot :
Just Go Through this

And Subscribe my channel Hello World Please.

can anyone tell me what is wrong with this code

#include <iostream>

using namespace std;



int main() {
	string jStr;
	int a[26]={0};
	cin>>jStr;
	for(int i=0;i<jStr.length();i++)
	{
		int j=(int)jStr[i]-97;
		a[j]=1;
	}
	int no;
	cin>>no;
	string str;
	int notPresent{0};
	while(no--)
	{
		cin>>str;
		for(int j=0;j<str.length();j++)
		{
			int temp=(int)str[j]-97;
			if(a[temp]==1)
			{
			    notPresent=0;
			}
				
			else
			{
				notPresent++;
			}
		}
		if(notPresent>0)
			cout<<"No"<<endl;
		else
			cout<<"Yes"<<endl;
	}
	
	return 0;
}

i have tested it with provided example

help with this code
#include
#include
using namespace std;

int main()
{

    string s;
    cin >> s;
    sort( s.begin(), s.end() );
    int n;
    cin >> n;
    while( n-- )
    {
        string s1;
        cin >> s1;
        sort( s1.begin(), s1.end() );
        if ( s == s1 )
        cout << "Yes" << endl;
        else
        cout << "No" << endl;
    }
    
return 0;

}

PLEASE CHECK MY CODE ONCE:
My almost all custom inputs are working well and giving out correct solutions, but while SUBMITTING its providing WRONG ANSWER

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
  string  s , t1;
  cin >> s;
  int j , n = s.length(); 
  char char_array[n + 1]; 

   strcpy(char_array, s.c_str()); 
   int t , i;
   cin >> t;
   for( i = 0 ; i < t ; i++ )
   {
      cin>>t1;
      int k = t1.length();
      char char_array2[k + 1]; 
      strcpy( char_array2, t1.c_str() );
      int m , a = 0;
      for( j = 0 ; j < = k ; j++ )
      {
        for( m = 0 ; m < = n ; m++ )
        {
            if( char_array2[j] == char_array[m] )
           {
                a++;
            }
        }
    }
    if(a!=n+1)
        cout << "No" << endl;
    else
        cout << "Yes" << endl;
  }
return 0;
}

Waiting for a soon REPLY!

#include<bits/stdc++.h>
using namespace std;

int main(){
string s;
getline(cin, s);
int st[26]={0};
for(int i=0; i<s.length(); i++){
st[(int)s[i]- 97]=1;
}
int n;
scanf("%d", &n);
while(n–){
string w; int c=0;
getline(cin, w); //##############This line############//
for(int i=0; i<w.length(); i++){
if(st[(int)w[i]- 97]==1){
++c;
}
}
if(c==w.length()) printf(“Yes\n”);
else printf(“No\n”);
}

}

In the above code, there’s a line marked “This line”. If I am using getline, my code was not accepted, but when I used cin, my code was accepted. Any idea why this happened?

in the 5th line you have left Ampersand …on scanf line .same mistake in while loop 3rd line “&ch”

#include<bits/stdc++.h>

#define ll long long

#define lli long long int

#define MOD 1000000007

#define input(a) cin >> a

#define print(a) cout << a

#define printsp(a) cout << a << " "

#define println(a) cout << a << endl

#define debug(a) cout << #a << " = " << a << “\n”

#define testCases int t; cin >> t; while(t–)

#define loop(n) for(ll int i = 0; i < n; i++)

#define iloop(k,n) for(ll int i = k; i < n; i++)

#define jloop(k,n) for(ll int j = k; j < n; j++)

#define reverseLoop(k,n) for(ll int i = k; i >= n; i–)

#define fastIO ios_base::sync_with_stdio(false); cin.tie(NULL)

using namespace std;

void solution(){

string s, word;

input(s);

int n;

input(n);



loop(n){

    bool flag = 1;

    input(word);

    set <char> letters ( begin(word), end(word) );

    

    for(auto it : letters){

        if(count(s.begin(), s.end(), it) == 0){

            flag = 0;

        }

    }

    println((flag ? "Yes": "No"));

}

}

int main(){

fastIO;

solution();



return 0;

}

1 Like

you’re wrong, what if the string is “pepsi”
and the ones to check for are “peppsi”,“peepsi”
They’re correct but your method will fail here :slight_smile:

#include <bits/stdc++.h>

using namespace std;

int main()

{

int t;

string s, s1;

cin >> s;

sort(s.begin(), s.end());

cin >> t;

while (t--)

{

    cin >> s1;

    sort(s1.begin(), s1.end());

    int count = 0;

    for (int i = 0; i < s.size(); i++)

    {

        if (s[i] == s1[i])

        {

            count++;

        }

    }

    if (count == s1.size())

    {

        cout << "Yes" << endl;

    }

    else

    {

        cout << "No" << endl;

    }

}

return 0;

}

//what’s wrong in my code why sort() was not working?

@gvlokesh9287
what if the alphabets I know are “abcde” and I only read something like “abcccc”. It should be correct but yours shows no.

https://www.codechef.com/viewsolution/56204590

Output is correct
Checked with many inputs
Still showing wrong, why?

Check the output format, NO and No are treated differently.

Rectified
#include<iostream>
using namespace std;

int main(){
    string s;
    int N;
    cin>>s;
    cin>>N;
    while (N--)
    {
        bool check = 1;
        string w;
        cin>>w;
        int H[26]={0};
        for (int i = 0; i < s.length(); i++)
        {
            H[s[i]-97]++;
        }
        for (int i = 0; i < w.length(); i++)
        {
            if (H[w[i]-97]<1)
            {
                check = false;
                break;
            }     
        }
        if (check==1)
        {
            cout<<"Yes"<<endl;
        }
        else
        {
            cout<<"No"<<endl;
        }       
    }  
    return 0;
}
1 Like