Check whether the string can be printed using same row of qwerty keypad

11 Jun, 2021
Given a string S, the task is to check whether the string can be typed using only a single row of the qwerty keyboard. 
Examples: 
Input: S = “Dad” Output: Yes Explanation: Characters “D” and “a” are present in the same row of qwerty keypad. That is second Row.Input: S = “Mom” Output: No Explanation: Characters “M” and “o” are not present in the same row of qwerty keypad. 
Approach: The idea is to store the characters of the same row of the qwerty keypad into different hash-maps to check that all the characters of the string are from the same row.Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ Program to check whether// the string can be printed// using same row of qwerty keypad #include <bits/stdc++.h>using namespace std; // Function to find the row of the// character in the qwerty keypadint checkQwertyRow(char x){    // Sets to include the characters    // from the same row of the qwerty keypad    set<char> first_row        = { '1', '2', '3', '4',            '5', '6', '7', '8',            '9', '0', '-', '=' };    set<char> second_row        = { 'Q', 'W', 'E', 'R', 'T',            'Y', 'U', 'I', 'O', 'P',            '[', ']', 'q', 'w', 'e',            'r', 't', 'y', 'u', 'i',            'o', 'p' };    set<char> third_row        = { 'A', 'S', 'D', 'F', 'G',            'H', 'J', 'K', 'L', ';',            ':', 'a', 's', 'd', 'f',            'g', 'h', 'j', 'k', 'l' };    set<char> fourth_row        = { 'Z', 'X', 'C', 'V', 'B',            'N', 'M', ',', '.',            '/', 'z', 'x', 'c', 'v',            'b', 'n', 'm' };     // Condition to check the row of the    // current character of the string    if (first_row.count(x) > 0) {        return 1;    }    else if (second_row.count(x) > 0) {        return 2;    }    else if (third_row.count(x) > 0) {        return 3;    }    else if (fourth_row.count(x) > 0) {        return 4;    }     return 0;} // Function to check the characters are// from the same row of the qwerty keypadbool checkValidity(string str){    char x = str[0];    int row = checkQwertyRow(x);    for (int i = 0; i < str.length(); i++) {        x = str[i];        if (row != checkQwertyRow(x)) {            return false;        }    }    return true;} // Driver Codeint main(){    string str = "GeeksforGeeks";     if (checkValidity(str))        cout << "Yes";    else        cout << "No";     return (0);}
// Java program to check whether// the string can be printed// using same row of qwerty keypadimport java.util.*; class GFG{ // Function to find the row of the// character in the qwerty keypadstatic int checkQwertyRow(char x){         // Sets to include the characters    // from the same row of the qwerty keypad    Character[] first_row1 = { '1', '2', '3', '4',                               '5', '6', '7', '8',                               '9', '0', '-', '=' };    Set<Character> first_row = new HashSet<>(     Arrays.asList(first_row1));          Character[] second_row1 = { 'Q', 'W', 'E', 'R', 'T',                                'Y', 'U', 'I', 'O', 'P',                                '[', ']', 'q', 'w', 'e',                                'r', 't', 'y', 'u', 'i',                                'o', 'p' };    Set<Character> second_row = new HashSet<>(     Arrays.asList(second_row1));          Character[] third_row1 = { 'A', 'S', 'D', 'F', 'G',                               'H', 'J', 'K', 'L', ';',                               ':', 'a', 's', 'd', 'f',                               'g', 'h', 'j', 'k', 'l' };    Set<Character> third_row = new HashSet<>(     Arrays.asList(third_row1));          Character[] fourth_row1 = { 'Z', 'X', 'C', 'V', 'B',                                'N', 'M', ',', '.',                                '/', 'z', 'x', 'c', 'v',                                'b', 'n', 'm' };    Set<Character> fourth_row = new HashSet<>(     Arrays.asList(fourth_row1));     // Condition to check the row of the    // current character of the string    if (first_row.contains(x))    {        return 1;    }    else if (second_row.contains(x))    {        return 2;    }    else if (third_row.contains(x))    {        return 3;    }    else if (fourth_row.contains(x))    {        return 4;    }    return 0;} // Function to check the characters are// from the same row of the qwerty keypadstatic boolean checkValidity(String str){    char x = str.charAt(0);    int row = checkQwertyRow(x);         for(int i = 0; i < str.length(); i++)    {        x = str.charAt(i);        if (row != checkQwertyRow(x))        {            return false;        }    }    return true;} // Driver codepublic static void main(String[] args){    String str = "GeeksforGeeks";     if (checkValidity(str))        System.out.println("Yes");    else        System.out.println("No");}} // This code is contributed by offbeat
# Python3 program to check whether# the string can be printed# using same row of qwerty keypad # Function to find the row of the# character in the qwerty keypaddef checkQwertyRow(x):     # Sets to include the    # characters from the    # same row of the qwerty keypad    first_row = ['1', '2', '3', '4',                 '5', '6', '7', '8',                 '9', '0', '-', '=']     second_row = ['Q', 'W', 'E', 'R',                  'T', 'Y', 'U', 'I',                  'O', 'P', '[', ']',                  'q', 'w', 'e', 'r',                  't', 'y', 'u', 'i',                  'o', 'p']    third_row = ['A', 'S', 'D', 'F',                 'G', 'H', 'J', 'K',                 'L', ';', ':', 'a',                 's', 'd', 'f', 'g',                 'h', 'j', 'k', 'l']    fourth_row = ['Z', 'X', 'C', 'V',                  'B', 'N', 'M', ',',                  '.', '/', 'z', 'x',                  'c', 'v', 'b', 'n', 'm']     # Condition to check the    # row of the current character    # of the string    if(first_row.count(x) > 0):        return 1    elif(second_row.count(x) > 0):        return 2    elif(third_row.count(x) > 0):        return 3    elif(fourth_row.count(x) > 0):        return 4    return 0 # Function to check the # characters are from the# same row of the qwerty keypaddef checkValidity(str):       x = str[0]    row = checkQwertyRow(x)     for i in range(len(str)):        x = str[i]        if(row != checkQwertyRow(x)):            return False    return True # Driver Codestr = "GeeksforGeeks" if(checkValidity(str)):    print("Yes")else:    print("No") # This code is contributed by avanitrachhadiya2155
// C# program to check whether// the string can be printed// using same row of qwerty keypadusing System;using System.Collections.Generic; class GFG{ // Function to find the row of the// character in the qwerty keypadstatic int checkQwertyRow(char x){         // Sets to include the characters    // from the same row of the qwerty keypad    char[] first_row1 = { '1', '2', '3', '4',                          '5', '6', '7', '8',                          '9', '0', '-', '=' };    HashSet<char> first_row = new HashSet<char>(                              first_row1);         char[] second_row1 = { 'Q', 'W', 'E', 'R', 'T',                           'Y', 'U', 'I', 'O', 'P',                           '[', ']', 'q', 'w', 'e',                           'r', 't', 'y', 'u', 'i',                           'o', 'p' };    HashSet<char> second_row = new HashSet<char>(                               second_row1);         char[] third_row1 = { 'A', 'S', 'D', 'F', 'G',                          'H', 'J', 'K', 'L', ';',                          ':', 'a', 's', 'd', 'f',                          'g', 'h', 'j', 'k', 'l' };    HashSet<char> third_row = new HashSet<char>(                              third_row1);         char[] fourth_row1 = { 'Z', 'X', 'C', 'V', 'B',                           'N', 'M', ',', '.', '/',                           'z', 'x', 'c', 'v', 'b',                           'n', 'm' };    HashSet<char> fourth_row = new HashSet<char>(                               fourth_row1);     // Condition to check the row of the    // current character of the string    if (first_row.Contains(x))    {        return 1;    }    else if (second_row.Contains(x))    {        return 2;    }    else if (third_row.Contains(x))    {        return 3;    }    else if (fourth_row.Contains(x))    {        return 4;    }    return 0;} // Function to check the characters are// from the same row of the qwerty keypadstatic bool checkValidity(String str){    char x = str[0];    int row = checkQwertyRow(x);         for(int i = 0; i < str.Length; i++)    {        x = str[i];        if (row != checkQwertyRow(x))        {            return false;        }    }    return true;} // Driver codepublic static void Main(String[] args){    String str = "GeeksforGeeks";     if (checkValidity(str))        Console.WriteLine("Yes");    else        Console.WriteLine("No");}} // This code is contributed by Amit Katiyar
<script>       // JavaScript program to check whether      // the string can be printed      // using same row of qwerty keypad             // Function to find the row of the      // character in the qwerty keypad      function checkQwertyRow(x) {        // Sets to include the characters        // from the same row of the qwerty keypad        var first_row = [          "1",          "2",          "3",          "4",          "5",          "6",          "7",          "8",          "9",          "0",          "-",          "=",        ];         var second_row = [          "Q",          "W",          "E",          "R",          "T",          "Y",          "U",          "I",          "O",          "P",          "[",          "]",          "q",          "w",          "e",          "r",          "t",          "y",          "u",          "i",          "o",          "p",        ];        var third_row = [          "A",          "S",          "D",          "F",          "G",          "H",          "J",          "K",          "L",          ";",          ":",          "a",          "s",          "d",          "f",          "g",          "h",          "j",          "k",          "l",        ];        var fourth_row = [          "Z",          "X",          "C",          "V",          "B",          "N",          "M",          ",",          ".",          "/",          "z",          "x",          "c",          "v",          "b",          "n",          "m",        ];         // Condition to check the row of the        // current character of the string        if (first_row.includes(x)) {          return 1;        } else if (second_row.includes(x)) {          return 2;        } else if (third_row.includes(x)) {          return 3;        } else if (fourth_row.includes(x)) {          return 4;        }        return 0;      }       // Function to check the characters are      // from the same row of the qwerty keypad      function checkValidity(str) {        var x = str[0];        var row = checkQwertyRow(x);         for (var i = 0; i < str.length; i++) {          x = str[i];          if (row !== checkQwertyRow(x)) {            return false;          }        }        return true;      }       // Driver code      var str = "GeeksforGeeks";       if (checkValidity(str)) document.write("Yes");      else document.write("No");       </script>
No
 
Time Complexity: O(N)
offbeat
amit143katiyar
avanitrachhadiya2155
rdtank
Pattern Searching
School Programming
Strings
Strings
Pattern Searching
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.