Undulating numbers
Last Updated :
27 Apr, 2023
An undulating number is a number that has only two types of digits and alternate digits are same, i.e., it is of the form “ababab….”. It is sometimes restricted to non-trivial undulating numbers which are required to have at least 3 digits and a is not equal to b.
The first few such numbers are: 101, 121, 131, 141, 151, 161, 171, 181, 191, 202, 212, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 454, 464, 474, 484, 494, …
Some higher undulating numbers are: 6363, 80808, 1717171.
- For any n >= 3, there are 9 × 9 = 81 non-trivial n-digit undulating numbers, since the first digit can have 9 values (it cannot be 0), and the second digit can have 9 values when it must be different from the first.
Given a number, check if it is Undulating numbers considering the definition of alternating digits, at least 3 digits and adjacent digits not same.
Examples :
Input : n = 121
Output : Yes
Input : n = 1991
Output : No
C++
#include <bits/stdc++.h>
using namespace std;
bool isUndulating(string n)
{
if (n.length() <= 2)
return false ;
for ( int i = 2; i < n.length(); i++)
if (n[i - 2] != n[i])
false ;
return true ;
}
int main()
{
string n = "1212121" ;
if (isUndulating(n))
cout << "Yes" ;
else
cout << "No" ;
}
|
Java
import java.util.*;
class GFG {
public static boolean isUndulating(String n)
{
if (n.length() <= 2 )
return false ;
for ( int i = 2 ; i < n.length(); i++)
if (n.charAt(i- 2 ) != n.charAt(i))
return false ;
return true ;
}
public static void main (String[] args)
{
String n = "1212121" ;
if (isUndulating(n)== true )
System.out.println( "yes" );
else
System.out.println( "no" );
}
}
|
Python3
def isUndulating(n):
if ( len (n) < = 2 ):
return False
for i in range ( 2 , len (n)):
if (n[i - 2 ] ! = n[i]):
return False
return True
n = "1212121"
if (isUndulating(n)):
print ( "Yes" )
else :
print ( "No" )
|
C#
using System;
class GFG {
public static bool isUndulating( string n)
{
if (n.Length <= 2)
return false ;
for ( int i = 2; i < n.Length; i++)
if (n[i-2] != n[i])
return false ;
return true ;
}
public static void Main ()
{
string n = "1212121" ;
if (isUndulating(n)== true )
Console.WriteLine( "yes" );
else
Console.WriteLine( "no" );
}
}
|
PHP
<?php
function isUndulating( $n )
{
if ( strlen ( $n ) <= 2)
return false;
for ( $i = 2; $i < strlen ( $n ); $i ++)
if ( $n [ $i - 2] != $n [ $i ])
false;
return true;
}
$n = "1212121" ;
if (isUndulating( $n ))
echo ( "Yes" );
else
echo ( "No" );
?>
|
Javascript
<script>
function isUndulating(n)
{
if (n.length <= 2)
return false ;
for (let i = 2; i < n.length; i++)
if (n[i-2] != n[i])
return false ;
return true ;
}
let n = "1212121" ;
if (isUndulating(n)== true )
document.write( "Yes" );
else
document.write( "No" );
</script>
|
Time complexity: O(N) where N is no of digits of given number
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...