Open In App

Check if the number is valid when flipped upside down

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string str representing a number, the task is to find whether the number is valid or not if it made topsy-turvy i.e upside-down.
Examples: 
 

Input: str = “1183” 
Output: Yes 
upside-down(1183) = 1183
Input: str = “983” 
Output: No 
 

 

Approach: Only the digits 1, 3 and 8 are the digits that can form another valid digit when turned upside-down. If the number contains a digit other than these then print No else print Yes.
Below is the implementation of the above approach: 
 

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function that returns true if
// str is Topsy Turvy
bool topsyTurvy(string str)
{
 
    // For every character of the string
    for (int i = 0; i < str.length(); i++) {
 
        // If the current digit cannot form a
        // valid digit when turned upside-down
        if (str[i] == '2' || str[i] == '4'
            || str[i] == '5' || str[i] == '6'
            || str[i] == '7' || str[i] == '9') {
            return false;
        }
    }
 
    return true;
}
 
// Driver code
int main()
{
    string str = "1234";
 
    if (topsyTurvy(str))
        cout << "Yes";
    else
        cout << "No";
 
    return 0;
}


Java




// Java implementation of the approach
import java.util.*;
 
class GFG
{
 
// Function that returns true if
// str is Topsy Turvy
static boolean topsyTurvy(char[] str)
{
 
    // For every character of the string
    for (int i = 0; i < str.length; i++)
    {
 
        // If the current digit cannot form a
        // valid digit when turned upside-down
        if (str[i] == '2' || str[i] == '4' ||
            str[i] == '5' || str[i] == '6' ||
            str[i] == '7' || str[i] == '9')
        {
            return false;
        }
    }
    return true;
}
 
// Driver code
public static void main(String[] args)
{
    String str = "1234";
 
    if (topsyTurvy(str.toCharArray()))
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
 
// This code is contributed by Rajput-Ji


Python3




# Python3 implementation of the approach
 
# Function that returns true if
# str is Topsy Turvy
def topsyTurvy(string) :
 
    # For every character of the string
    for i in range(len(string)) :
         
        # If the current digit cannot form a
        # valid digit when turned upside-down
        if (string[i] == '2' or string[i] == '4' or
            string[i] == '5' or string[i] == '6' or
            string[i] == '7' or string[i] == '9') :
            return False;
             
    return True;
 
# Driver code
if __name__ == "__main__" :
 
    string = "1234";
 
    if (topsyTurvy(string)) :
        print("Yes");
    else :
        print("No");
 
# This code is contributed by AnkitRai01


C#




// C# implementation of the approach
using System;
class GFG
{
 
// Function that returns true if
// str is Topsy Turvy
static bool topsyTurvy(char[] str)
{
 
    // For every character of the string
    for (int i = 0; i < str.Length; i++)
    {
 
        // If the current digit cannot form a
        // valid digit when turned upside-down
        if (str[i] == '2' || str[i] == '4' ||
            str[i] == '5' || str[i] == '6' ||
            str[i] == '7' || str[i] == '9')
        {
            return false;
        }
    }
    return true;
}
 
// Driver code
public static void Main(String[] args)
{
    String str = "1234";
 
    if (topsyTurvy(str.ToCharArray()))
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
}
}
 
// This code is contributed by 29AjayKumar


Javascript




<script>
 
// Javascript implementation of the approach
 
// Function that returns true if
// str is Topsy Turvy
function topsyTurvy( str)
{
 
    // For every character of the string
    for (var i = 0; i < str.length; i++) {
 
        // If the current digit cannot form a
        // valid digit when turned upside-down
        if (str[i] == '2' || str[i] == '4'
            || str[i] == '5' || str[i] == '6'
            || str[i] == '7' || str[i] == '9') {
            return false;
        }
    }
 
    return true;
}
 
// Driver code
var str = "1234";
if (topsyTurvy(str))
    document.write( "Yes");
else
    document.write( "No");
 
</script>


Output: 

No

 

Time Complexity: O(|str|)

Auxiliary Space: O(1)



Last Updated : 18 Mar, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads