HackerRank Alien Username Solution

Hello Programmers, In this post, you will know how to solve the HackerRank Alien Username Solution. This problem is a part of the Regex HackerRank Series.

HackerRank Alien Username Solution
HackerRank Alien Username Solutions

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.

HackerRank Alien Username Word Solution

Problem

In a galaxy far, far away, on a planet different from ours, each computer username uses the following format:

  1. It must begin with either an underscore, _ (ASCII value 95), or a period, . (ASCII value 46).
  2. The first character must be immediately followed by one or more digits in the range 0 through 9.
  3. After some number of digits, there must be 0 or more English letters (uppercase and/or lowercase).
  4. It may be terminated with an optional _ (ASCII value 95). Note that if it’s not terminated with an underscore, then there should be no characters after the sequence of 0 or more English letters.

Given n strings, determine which ones are valid alien usernames. If a string is a valid alien username, print VALID on a new line; otherwise, print INVALID.

Input Format

The first line contains a single integern, denoting the number of usernames.
Each line i of the n subsequent lines contains a string denoting an alien username to validate.

Constraints

  • 1 <= n <= 100

Output Format

Iterate through each of the n strings in order and determine whether or not each string is a valid alien username. If a username is a valid alien username, print VALID on a new line; otherwise, print INVALID.

Sample Input

3
0898989811abced
_abce
_09090909abcD0

Sample Output

VALID
INVALID
INVALID

Explanation

We validate the following three usernames:

  1. _0898989811abced_ is valid as it satisfies the requirements specified above. Thus, we print VALID.
  2. _abce is invalid as the beginning _ is not followed by one or more digits. Thus, we print INVALID.
  3. _09090909abcD0 is invalid as the sequence of English alphabetic letters is immediately followed by a number. Thus, we print INVALID.

Ezoicreport this adHackerRank Alien Username Solution in Cpp

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

int foo(char *c)
{
    int i;
    if(c[0]!='_'&&c[0]!='.')
        return 0;
    if(!isdigit(c[1]))
        return 0;
    i=2;while(isdigit(c[i]))i++;
    while(isalpha(c[i]))i++;
    if(c[i]=='\0')return 1;
    else if(c[i]=='_'&&c[i+1]=='\0')return 1;
    else return 0;
}

int main() {
    int n;
    cin>>n;
    char c[1000];
    for(int i=0;i<n;i++)
    {
        cin>>c;
        if(foo(c))
            cout<<"VALID\n";
        else
            cout<<"INVALID\n";
    }
    return 0;
}

HackerRank Alien Username Solutions in Java

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Solution {

	public static void main(String[] args) {
		Pattern p=Pattern.compile("(^\\.|_)(\\d+)([a-z]|[A-Z])*(_){0,1}");
		Scanner in = new Scanner(System.in);

		int count = 0;
		int iterator = in.nextInt();
		in.nextLine();
		for (int i = 0; i < iterator; i++) {
			String data = in.nextLine();
			Matcher m=p.matcher(data);
			if(m.find()){
				if(m.group().equals(data)){
					System.out.println("VALID");
				}else{
					System.out.println("INVALID");
				}
			}else{
				System.out.println("INVALID");
			}
		}
		
	}
}

HackerRank Alien Username Solutions in Python

import re
n=int(input())
lines=[]
for i in range(0,n):
    lines.extend(input().split("\n"))

for l in lines:
    if(re.match("^[_.][0-9]{1,}[a-zA-Z]*[_]?$",l)!=None):
       print("VALID")
    else:
        print("INVALID")
Ezoicreport this ad

HackerRank Alien Username Solutions in JavaScript

process.stdin.resume();
process.stdin.setEncoding("ascii");
process.stdin.on("data", function (input) {
	input = input.split('\n');
	var n = parseInt(input[0]),
		strs = input.slice(1,n+1);
	for (i=0, j=strs.length; i<j; i+=1) {
		if (strs[i].match(/^[_\.]\d+[a-z]*_?$/ig)) {
			console.log('VALID');
		} else {
			console.log('INVALID');
		}
	}
});

HackerRank Alien Username Solutions in PHP

<?php
$_fp = fopen("php://stdin", "r");
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
fscanf($_fp, "%d", $m);
$lines = array();
for ($i = 0; $i < $m; $i++) {
    $line = trim(fgets($_fp));
    print (preg_match('/^[_\.][0-9]+[a-z]*_?$/i', $line) ? 'VALID' : 'INVALID') . PHP_EOL;
}

Disclaimer: This problem (Alien Username) is generated by HackerRank but the Solution is Provided by BrokenProgrammers. This tutorial is only for Educational and Learning purposes.

Next: HackerRank IP Address Validation Solution

Sharing Is Caring

Leave a Comment

Ezoicreport this ad