Palindrome համարը


Դժվարության մակարդակ Հեշտ
Հաճախակի հարցնում են Adobe Amazon Bloomberg DBOI Google MAQ Microsoft o9 լուծումներ
Մաթեմատիկա

Խնդիրի հայտարարություն

«Palindrome Number» խնդիրը նշում է, որ ձեզ տրվում է ամբողջ թիվ: Ստուգեք ՝ դա պալինդրոմ է, թե ոչ: Լուծեք այս խնդիրը ՝ առանց տրված թիվը տողի վերափոխելու:

Palindrome համարը

Օրինակ

12321
true

բացատրություն

12321 – ը պալինդրոմային համար է, որովհետև 12321 – ը հետ շրջելիս այն տալիս է 12321 – ը, որը նույնն է տվյալ թվին: Այսպիսով, 12321-ը պալինդրոմային համար է:

-12321
false

բացատրություն

-12321- ը պալինդրոմային համար չէ, որովհետև, երբ հակառակ ենք անում -12321-ը, այն տալիս է 12321-, ինչը նույնը չէ տվյալ թվին: Այսպիսով -12321-ը պալինդրոմային համար չէ:

Մոտեցում Palindrome համարի ստուգում

Առաջին մոտեցումը, որ գալիս է մեր մտքում, տրված թիվը լարի վերափոխելն է և ստուգելը ՝ պալինդրոմ է, թե ոչ: Բայց մենք դա չենք կարող անել, քանի որ այս մոտեցումը սահմանափակ է, և նաև մենք լրացուցիչ տարածք ենք պահանջում դրա համար լարային.

Կարող ենք նաև դիտարկել մեկ կարևոր կետ, որ բացասական թիվը երբեք պալինդրոմային թիվ չէ:

Այսպիսով, մենք կփորձենք դրան այլ կերպ մոտենալ: Մենք կվերադարձնենք թիվը և կպահենք այն փոփոխականի մեջ և համեմատենք, եթե այն հավասար է սկզբնական թվին: Եթե ​​հետադարձ թիվը համարժեք է սկզբնական թվին, ապա համարը պալինդրոմ է, այլապես դա պալինդրոմ չէ:

Տրված թիվը փոխելու համար մենք կկատարենք (մնացորդ = n% 10) սա տալիս է համարի վերջին նիշը: Մենք կստեղծենք շրջված համարը ըստ (հակառակ: = հակադարձված * 10 + մնացորդի): Այժմ թիվը կբաժանենք 10-ի ՝ երկրորդ վերջին նիշը ստանալու համար: Մենք կրկնում ենք այս գործընթացը մինչև n- ի արժեքը զրոյից մեծ լինի:

Վերջապես, մենք կհամեմատենք, եթե սկզբնական թիվը հավասար է հակառակ թվին: Եթե ​​այո, ապա համարը պալինդրոմային թիվ է, այլապես դա պալինդրոմային թիվ չէ:

Կոդ

C ++ կոդը Palindrome համարի համար

#include<bits/stdc++.h>
using namespace std;
bool isPalindrome(int num){
  if(num < 0) return  false; 
  int reversed = 0, remainder, original = num;
  while(num != 0) {
        remainder = num % 10; 
        reversed = reversed * 10 + remainder; 
        num  /= 10; 
   }
   return original == reversed;
}
  
int main() 
{ 
   if(isPalindrome(12321)) 
     cout<<"Yes, it is Palindrome"; 
   else
     cout<<"No, not Palindrome"; 
}
Yes, it is Palindrome

Java կոդը Palindrome համարի համար

public class check
{	 
  static  boolean isPalindrome(int num){
   if(num < 0) return  false; 
   int reversed = 0, remainder, original = num;
   while(num != 0) {
        remainder = num % 10; 
        reversed = reversed * 10 + remainder; 
        num  /= 10; 
    }
    return original == reversed;
}
  
public static void main(String args[]){ 
    if(isPalindrome(12321)) 
      System.out.println("Yes, it is Palindrome"); 
    else
      System.out.println("No, not Palindrome"); 
  } 
} 

Yes, it is Palindrome

Բարդության վերլուծություն

Timeամանակի բարդությունը

Aամանակի բարդությունը `ստուգելու համարը պալինդրոմ է, թե ոչ  

Տիեզերական բարդություն

Ո (1) քանի որ մենք օգտագործում ենք մեկ լրացուցիչ փոփոխական `հետադարձ թիվը համարը պահելու համար: