Skip to content
Programming101
Programming101

Learn everything about programming

  • Home
  • CS Subjects
    • IoT – Internet of Things
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programming101

Learn everything about programming

HackerEarth Car Names problem solution

YASH PAL, 31 July 2024
In this HackerEarth Car Names, problem-solution Brian built his own car and was confused about what name he should keep for it. He asked Roman for help. Roman being his good friend, suggested a lot of names.
Brian only liked names that:
– Consisted of exactly three distinct characters, say C1, C2, and C3
– Satisfied the criteria that the string was of the form – C1n C2n C3n: This means, first C1 occurs n times, then C2 occurs n times and then C3 occurs n times. For example, xyz, ccaarr, mmmiiiaaa satisfy the criteria, but xyzw, aabbbcccc don’t.
Given N names suggested by Roman, print “OK” if Brian likes the name and “Not OK” if he doesn’t.
HackerEarth Car Names problem solution

HackerEarth Car Names problem solution.

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

int main(){
int N; cin>>N;
string s;
while(N--) {
cin>>s;
int num1[1000]={0};
int k=0;
long long cnt=1;
int num=0;
for(int i=1;i<s.size();i++) {
if(s[i]==s[i-1])cnt++;
else {
num1[k++]=cnt;
if(k>3) break;
num++; cnt=1;
}
}
if(cnt>=1) {
num1[k++]=cnt;
num++;
}
if(num==3&&num1[0]==num1[1]&&num1[1]==num1[2] && s[0] != s[s.size() - 1])
cout<<"OK"<<endl;
else
cout <<"Not OK"<<endl;
}
}

Second solution

#include <bits/stdc++.h>

#define F first
#define S second
#define pb push_back
#define FOR(i,lb,ub) for(i=lb;i<=ub;i++)
#define RFOR(i,ub,lb) for(i=ub;i>=lb;i--)
#define FORS(it,v) for(it=v.begin();it!=v.end();it++)
#define int long long
#define st_clk double st=clock();
#define end_clk double en=clock();
#define show_time cout<<"tTIME="<<(en-st)/CLOCKS_PER_SEC<<endl;
int gcd(int a, int b) { return b?gcd(b,a%b):a; }
using namespace std;
void solve()
{
int i,j,k,n;
cin>>n;
assert(n>=1 && n<=100);
string s;
FOR(i,0,n-1) {
cin>>s;
set<char> sc;
int ok = true, sz = s.size();
if (sz%3 != 0)
ok = false;
else {
int j=0;
sc.insert(s[j]);
for (; j<sz/3-1; j++) {
if (s[j]!=s[j+1])
ok = false;
}
j++;
sc.insert(s[j]);
for (; j<2*sz/3 - 1; j++) {
if (s[j]!=s[j+1])
ok = false;
}
j++;
sc.insert(s[j]);
for (; j<sz-1; j++) {
if (s[j]!=s[j+1])
ok = false;
}
}
if (sc.size()!=3)
ok = false;
if (!ok) {
cout<<"Not OKn";
}
else cout<<"OKn";
}
}
main()
{
st_clk
ios_base::sync_with_stdio(0);
cin.tie(0);
int t,i,j;
solve();

return 0;
}
coding problems

Post navigation

Previous post
Next post
  • HackerRank Separate the Numbers solution
  • How AI Is Revolutionizing Personalized Learning in Schools
  • GTA 5 is the Game of the Year for 2024 and 2025
  • Hackerrank Day 5 loops 30 days of code solution
  • Hackerrank Day 6 Lets Review 30 days of code solution
©2025 Programming101 | WordPress Theme by SuperbThemes