Números ondulantes

Un número ondulante es un número que tiene sólo dos tipos de dígitos y los dígitos alternos son iguales, es decir, es de la forma “ababab…”. A veces se restringe a números ondulantes no triviales que deben tener al menos 3 dígitos y a no es igual a b. 
 

Los primeros números de este tipo son: 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, … 
Algunos números ondulantes más altos son: 6363, 80808, 1717171.

  1. Para cualquier n >= 3, hay 9 × 9 = 81 números ondulantes de n dígitos no triviales, ya que el primer dígito puede tener 9 valores (no puede ser 0), y el segundo dígito puede tener 9 valores cuando debe ser diferente al primero.

Dado un número, verifique si se trata de números ondulantes considerando la definición de dígitos alternos, al menos 3 dígitos y dígitos adyacentes que no sean iguales.
Ejemplos: 

Input : n = 121
Output : Yes

Input : n = 1991
Output : No

C++

// C++ program to check whether a number
// is undulating or not
#include <bits/stdc++.h>
using namespace std;
 
bool isUndulating(string n)
{
    // Considering the definition
    // with restriction that there
    // should be at least 3 digits
    if (n.length() <= 2)
       return false;
 
    // Check if all alternate digits are
    // same or not.
    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

// Java program to check whether a number
// is undulating or not
import java.util.*;
 
class GFG {
     
    public static boolean isUndulating(String n)
    {
         
        // Considering the definition
        // with restriction that there
        // should be at least 3 digits
            if (n.length() <= 2)
                return false;
     
        // Check if all alternate digits are
        // same or not.
        for (int i = 2; i < n.length(); i++)
            if (n.charAt(i-2) != n.charAt(i))
                return false;
     
        return true;
    }
     
     
    // Driver code
    public static void main (String[] args)
    {
         
        String n = "1212121";
         
        if (isUndulating(n)==true)
            System.out.println("yes");
        else
            System.out.println("no");
    }
}
 
// This code is contributed by akash1295.

Python3

# Python3 program to check whether a
# number is undulating or not
 
def isUndulating(n):
 
    # Considering the definition
    # with restriction that there
    # should be at least 3 digits
    if (len(n) <= 2):
        return False
 
    # Check if all alternate digits
    # are same or not.
    for i in range(2, len(n)):
        if (n[i - 2] != n[i]):
            return False
 
    return True
 
# Driver Code
n = "1212121"
if (isUndulating(n)):
    print("Yes")
else:
    print("No")
 
# This code is contributed by Smitha Dinesh Semwal.

C#

// C# program to check whether a number
// is undulating or not
using System;
 
class GFG {
     
    public static bool isUndulating(string n)
    {
         
        // Considering the definition
        // with restriction that there
        // should be at least 3 digits
            if (n.Length <= 2)
                return false;
     
        // Check if all alternate digits are
        // same or not.
        for (int i = 2; i < n.Length; i++)
            if (n[i-2] != n[i])
                return false;
     
        return true;
    }
     
    // Driver code
    public static void Main ()
    {
         
        string n = "1212121";
         
        if (isUndulating(n)==true)
            Console.WriteLine("yes");
        else
            Console.WriteLine("no");
    }
}
 
// This code is contributed by Vt_m.

PHP

<?php
// PHP program to check whether a
// number is undulating or not
 
function isUndulating($n)
{
     
    // Considering the definition
    // with restriction that there
    // should be at least 3 digits
    if (strlen($n) <= 2)
        return false;
 
    // Check if all alternate
    // digits are same or not.
    for ($i = 2; $i < strlen($n); $i++)
        if ($n[$i - 2] != $n[$i])
            false;
 
    return true;
}
 
// Driver code
$n = "1212121";
if (isUndulating($n))
    echo("Yes");
else
    echo("No");
 
// This code is contributed by Ajit.
?>

Javascript

<script>
 
// JavaScript program tto check whether a number
// is undulating or not
 
    function isUndulating(n)
    {
           
        // Considering the definition
        // with restriction that there
        // should be at least 3 digits
            if (n.length <= 2)
                return false;
       
        // Check if all alternate digits are
        // same or not.
        for (let i = 2; i < n.length; i++)
            if (n[i-2] != n[i])
                return false;
       
        return true;
    }
 
 
// Driver Code
 
        let n = "1212121";
           
        if (isUndulating(n)==true)
            document.write("Yes");
        else
            document.write("No");
   
</script>
Producción: 

Yes

 

Complejidad del tiempo : O(N) donde N no es ningún dígito de un número dado 

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por jaideeppyne1997 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *