Open In App

# Check if the number is valid when flipped upside down

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 ``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

 ``

Output:

`No`

Time Complexity: O(|str|)

Auxiliary Space: O(1)