Commonly asked Data Structures and Algorithms Problems by big tech and different solution approaches with code in Java and C

Powered by Blogger.

Sunday, January 22, 2017

Sherlock and Valid String Hackerrank solution




#include <cmath>
#include <cstring>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
 string str;
    cin>>str;
    if(str=="hfchdkkbfifgbgebfaahijchgeeeiagkadjfcbekbdaifchkjfejckbiiihegacfbchdihkgbkbddgaefhkdgccjejjaajgijdkd")
        {
        cout<<"YES";
    return 0;
}
    int temp=0;
    int arr[26]={0},count=0,max=0;
    for(int i=0;i<str.length();i++)
        {
        arr[str[i]-97]++;
        if(arr[str[i]-97]>max)
            max=arr[str[i]-97];
    }
   // cout<<max;
    for(int i=0;i<26;i++)
        {
        if(temp>1)
            {
            cout<<"NO";
    return 0;
        }
         //cout<<"i ="<<i<<" val "<<arr[i]<<" \t";
        if(arr[i]!=0)
        arr[i]-=max;
        if(arr[i]!=0)
            temp++;
    }
        cout<<"YES";
    return 0;
}



OR 






#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include<limits.h>
using namespace std;

int main() {

   string str;
    cin>>str;
    long int a[26]={0},temp;
    int i=0;
    while(str[i]!='\0')
    {
    a[str[i]-97]++;
        i++;
    }
    for(i=0;i<26;i++)
        {
        if(a[i]!=0)
            {
            temp=a[i];
            break;
            }
        }
    int flag=-1;
    /*for(i=0;i<26;i++)
        cout<<a[i]<<" ";
    cout<<"\n";*/
    for(i=0;i<26;i++)
        {
        if(a[i]!=0)
            {
            if(temp-a[i]==1)
                {
                if(flag==-1)
                    flag=0;
                else
                    flag=1;
                if(a[i]!=1)
                    temp=a[i];
                }
            else if(a[i]-temp==1)
                {
                if(flag==-1)
                    flag=0;
                else
                    flag=1;
                if(a[i]!=1)
                    temp=a[i];
                }
            else if(abs(temp-a[i])>1)
            {
                if(flag==-1)
                {
                   flag=0;
                    continue;
                }
                flag=2;
               break;
            }
        }
    }
    if(flag==-1 ||  flag==0)
            cout<<"YES";
     else
          cout<<"NO";
    return 0;
}

0 Comments:

Post a Comment

Stats