Рубрики

Проверьте, является ли данный номер Fancy

Необычное число — это число, которое при повороте на 180 градусов совпадает. По заданному номеру определите, является ли оно модным или нет.

Повороты на 180 градусов 6, 9, 1, 0 и 8 равны 9, 6, 1, 0 и 8 соответственно

Примеры:

Input:  num =  96
Output: Yes
If we rotate given number by 180, we get same number

Input:  num =  916
Output: Yes
If we rotate given number by 180, we get same number

Input:  num =  996
Output: No

Input:  num =  121
Output: No

Мы настоятельно рекомендуем вам свернуть браузер и попробовать это в первую очередь.

Идея состоит в том, чтобы создать карту для хранения необычных парных отображений. После создания карты проследуйте заданное число с обоих концов, и если в любой точке символы на текущих концах не являются причудливыми парами, верните false. Этот алгоритм похож на алгоритм проверки палиндрома .

Ниже приведена реализация вышеуказанной идеи.

C ++

// C ++ программа, чтобы найти, является ли данное число причудливым или нет.
#include<bits/stdc++.h>

using namespace std;

  

bool isFancy(string& num)

{

    // Для хранения отображений необычных парных символов. Например

    // 6 в паре с 9 и 9 в паре с 6.

    map<char, char> fp;

    fp['0'] = '0';

    fp['1'] = '1';

    fp['6'] = '9';

    fp['8'] = '8';

    fp['9'] = '6';

  

    // Находим количество цифр в данном номере

    int n = num.length();

  

    // Обход с обоих концов и сравнение символов по одному

    int l = 0, r = n-1;

    while (l<=r)

    {

        // Если текущие символы на обоих концах не являются причудливыми парами

        if (fp.find(num[l]) == fp.end() || fp[num[l]] != num[r])

            return false;

        l++;

        r--;

    }

    return true;

}

  
// Драйвер программы

int main()

{

    string str = "9088806";

    isFancy(str)? cout << "Yes": cout << "No";

    return 0;

}

Джава

// Java-программа для поиска заданного числа
// это модно или нет

import java.util.*;

  

class GFG 

{

static boolean isFancy(String num) 

    // Для хранения отображений необычных парных символов.

    // Например, 6 в паре с 9 и 9 в паре с 6.

    Map<Character, 

        Character> fp = new HashMap<Character, 

                                    Character>(); 

                                      

    fp. put('0', '0'); 

    fp. put('1', '1'); 

    fp. put('6', '9'); 

    fp. put('8', '8'); 

    fp. put('9', '6'); 

  

    // Находим количество цифр в данном номере

    int n = num.length(); 

  

    // Траверс с обоих концов,

    // и сравниваем символы один за другим

    int l = 0, r = n-1

    while (l <= r) 

    

        // Если текущие символы на обоих концах

        // не причудливые пары

        if (!fp.containsKey(num.charAt(l)) || 

             fp.get(num.charAt(l)) != num.charAt(r)) 

            return false

        l++; 

        r--; 

    

    return true

  
// Код драйвера

public static void main(String[] args) 

{

    String str = "9088806"

    if(isFancy(str))

        System.out.println("Yes");

    else

        System.out.println("No");

}

  
// Этот код предоставлен PrinciRaj1992

C #

// C # программа для поиска заданного числа
// это модно или нет

using System;

using System.Collections.Generic;

  

class GFG 

{

static bool isFancy(String num) 

    // Для хранения отображений необычных парных символов.

    // Например, 6 в паре с 9 и 9 в паре с 6.

    Dictionary<char, char> fp = new Dictionary<char, char>();

                                      

    fp.Add('0', '0'); 

    fp.Add('1', '1'); 

    fp.Add('6', '9'); 

    fp.Add('8', '8'); 

    fp.Add('9', '6'); 

  

    // Находим количество цифр в данном номере

    int n = num.Length; 

  

    // Траверс с обоих концов,

    // и сравниваем символы один за другим

    int l = 0, r = n - 1; 

    while (l <= r) 

    

        // Если текущие символы на обоих концах

        // не причудливые пары

        if (!fp.ContainsKey(num[l]) || 

             fp[num[l]] != num[r]) 

            return false

        l++; 

        r--; 

    

    return true

  
// Код драйвера

public static void Main(String[] args) 

{

    String str = "9088806"

    if(isFancy(str))

        Console.WriteLine("Yes");

    else

        Console.WriteLine("No");

}

  
// Этот код предоставлен Rajput-Ji

Выход:

Yes

Спасибо Gaurav Ahirwar за предложенное выше решение.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Проверьте, является ли данный номер Fancy

0.00 (0%) 0 votes