עקססעל בלאַט זייַל טיטל לעעטקאָדע סאַלושאַן


שוועריקייט לעוועל גרינג
אָפט געבעטן אין אַדאָובי גוגל
מאַט נומער סיסטעם

פּראָבלעם סטאַטעמענט

אין דעם פּראָבלעם, עס איז אַ positive ינטאַדזשער וואָס רעפּראַזענץ אַ זייַל נומער פון אַ עקססעל בויגן.

עקססעל בלאַט זייַל טיטל לעעטקאָדע סאַלושאַן

בייַשפּיל

#1

28
"AB"

#2

701
"ZY"

צוגאַנג

דער פּראָבלעם איז די פאַרקערט פון די פּראָבלעם וואָס מיר האָבן צו געפֿינען די זייַל נומער פֿון אַ זייַל טיטל.
אַזוי אין דעם פּראָבלעם, מיר קאָנווערטעד אַ באַזע-26 נומער אין אַ באַזע -10 נומער וואָס איז אַ דעצימאַל נומער. אין דעם פּראָבלעם, מיר מוזן געפֿינען זיך די זייַל טיטל פֿון די זייַל נומער. אַזוי דאָ מיר נאָר האָבן צו טאָן פאַרקערט, דאס הייסט מיר האָבן צו בייַטן אַ באַזע -10 (דעצימאַל) נומער אין אַ נומער פון באַזע -26 סיסטעם.

אין אַלגעמיין, מיר וויסן אַז באַזע -26 זאָל האָבן 26 אותיות וואָס רעפּראַזענץ וואַלועס 0-25. אין עקססעל בלאַט זייַל טיטל, דאָס איז אַ ביסל אַנדערש. עס רעפּראַזענץ וואַלועס פון 1 צו 26. אויב מיר נוצן די אותיות AZ ווי 0-25, עס וועט זיין ווי די יקווייזשאַן:

זאל שטריקל זיין ABZ, דאָס איז קאָראַספּאַנדינג צו נומער N:
n = (A + 1) * 26 ^ 2 + (B + 1) * 26 ^ 1 + (Z + 1) * 26 ^ 0

פארוואס (א + 1)? ווייַל אין טשאַר סיסטעם 'א' איז 0, אָבער אין יקסעל סיסטעם 'א' איז איינער. יעדער טשאַר באַקומען אַן עקסטרע.

אַזוי אין סדר צו באַקומען לעצטע טשאַר הייסט ז מיר וואָלט ערשטער מינוס 1 הייסט n– און דאַן באַקומען n% 26
(n-1)% 26 = ז
איצט צעטיילט מיט 26 און איבערחזרן די זעלבע פּראָצעס פֿאַר ווייַטער כאַראַקטער.
(n-1) / 26 = (A + 1) * 26 ^ 1 + (B + 1) * 26 ^ 0

אַלגאָריטהם

  1. שאַפֿן אַ ליידיק שטריקל פֿאַר סטאָרידזש די אותיות.
  2. לויפן אַ שלייף בשעת N איז positive.
    • אַראָפּרעכענען 1 פֿון n.
    • באַקומען קראַנט כאַראַקטער דורך טאן מאָדולאָ פון N דורך 26.
    • טיילן N דורך 26.
  3. איצט פאַרקערט די רעזולטאַט שטריקל ווייַל מיר געפֿונען אותיות פון רעכט צו לינקס.
  4. צוריקקומען די ריווערסט שטריקל.

ימפּלעמענטאַטיאָן

C ++ פּראָגראַם פֿאַר עקססעל בלאַט זייַל טיטל לעעטקאָדע סאַלושאַן

#include <bits/stdc++.h>
using namespace std;

string convertToTitle(int n) 
{        
    string ans;
    while(n>0)
    {
        --n;
        int d= n%26;
        n/=26;
        ans+= 'A'+d;            
    }
   reverse(ans.begin(),ans.end());
   return ans; 
}

int main() 
{
   cout<<convertToTitle(28) <<endl;
   return 0; 
}
AB

Java פּראָגראַם פֿאַר עקססעל בלאַט זייַל טיטל לעעטקאָדע סאַלושאַן

class Rextester{
    
    public static String convertToTitle(int n) 
    {
        StringBuilder ans= new StringBuilder();
        while(n>0)
        {
            --n;
            int d= n%26;
            n/=26;
            ans.append((char)('A'+d));            
        }
        ans.reverse();
        return ans.toString(); 
    }
    
    public static void main(String args[])
    {    	
       System.out.println( convertToTitle(28)  ) ;
    }
}
AB

קאַמפּלעקסיטי אַנאַליסיס פֿאַר עקססעל בלאַט זייַל טיטל לעעטקאָדע סאַלושאַן

צייט קאַמפּלעקסיטי

אָ (קלאָץ (n)): וווּ n איז דער געגעבן זייַל נומער. מיר צעטיילן די נומער דורך 26 אין יעדער יטעראַטיאָן, דערפאר די צייט קאַמפּלעקסיטי איז אָ (קלאָץ (n)).

ספעיס קאַמפּלעקסיטי 

אָ (1): מיר נוצן קיין עקסטרע פּלאַץ אַנדערש ווי צו האַלטן די רעזולטאַט.