એક્સેલ શીટ કumnલમ શીર્ષક લીટકોડ સોલ્યુશન


મુશ્કેલી સ્તર સરળ
વારંવાર પૂછવામાં આવે છે એડોબ Google
મઠ સંખ્યા સિસ્ટમ

સમસ્યા નિવેદન

આ સમસ્યામાં સકારાત્મક પૂર્ણાંકો આપવામાં આવે છે જે એક એક્સેલ શીટની ક columnલમ નંબર રજૂ કરે છે, અમારે તેના અનુરૂપ ક columnલમનું શીર્ષક એક્સેલ શીટમાં દેખાય છે તે રીતે પરત કરવું પડશે.

એક્સેલ શીટ કumnલમ શીર્ષક લીટકોડ સોલ્યુશન

ઉદાહરણ

#1

28
"AB"

#2

701
"ZY"

અભિગમ

આ સમસ્યા એ છે કે જે સમસ્યામાં આપણે ઉભી થવું છે તેનાથી વિરુદ્ધ છે ક columnલમ શીર્ષકમાંથી ક columnલમ નંબર શોધી કા .ો.
તેથી તે સમસ્યામાં અમે બેઝ -26 નંબરને બેઝ -10 નંબરમાં રૂપાંતરિત કર્યો જે એક દશાંશ સંખ્યા છે. આ સમસ્યામાં આપણે ક columnલમ નંબરમાંથી ક columnલમ શીર્ષક શોધવા પડશે. તેથી અહીં આપણે ફક્ત વિરુદ્ધ કરવું પડશે, એટલે કે આપણે બેઝ -10 (દશાંશ) નંબરને સંખ્યા-બેઝ -26 સિસ્ટમમાં રૂપાંતરિત કરવા પડશે.

માનીએ છીએ કે આધાર નંબર 26 ની સામાન્ય સંખ્યામાં 26 અક્ષરો હોવા જોઈએ જે 0 થી 25 ની કિંમતોનું પ્રતિનિધિત્વ કરે છે. પરંતુ એક્સેલ શીટ ક titleલમ શીર્ષકમાં આ થોડું અલગ છે. તે 1 થી 26 ના મૂલ્યોનું પ્રતિનિધિત્વ કરે છે. તેથી જો આપણે અક્ષરો એઝેડનો ઉપયોગ 0-25 તરીકે કરીએ, તો તે નીચેના સમીકરણ જેવું દેખાશે:

શબ્દમાળા એબીઝેડ થવા દો, આ સંખ્યા n ને અનુરૂપ છે:
n = (A + 1) * 26 ^ 2 + (B + 1) * 26 ^ 1 + (ઝેડ + 1) * 26 ^ 0

કેમ (A + 1)? કારણ કે ચાર સિસ્ટમમાં 'એ' 0 છે, પરંતુ એક્સેલ સિસ્ટમમાં 'એ' એક છે. દરેક ચાર એક વધારાનો મેળવે છે.

તેથી છેલ્લા ચાર એટલે કે ઝેડ મેળવવા માટે આપણે પહેલા માઇનસ 1 એટલે કે n– કરીશું અને પછી n% 26 મેળવીશું
(n-1)% 26 = Z
હવે 26 સાથે વહેંચો અને આગલા પાત્ર માટે સમાન પ્રક્રિયાને પુનરાવર્તિત કરો.
(એન -1) / 26 = (એ + 1) * 26 ^ 1 + (બી + 1) * 26 ^ 0

અલ્ગોરિધમ

  1. અક્ષરો સંગ્રહવા માટે ખાલી શબ્દમાળા બનાવો.
  2. લૂપ ચલાવો જ્યારે એન સકારાત્મક છે.
    • એન માંથી 1 બાદ કરો.
    • 26 દ્વારા n ના મોડ્યુલો કરીને વર્તમાન પાત્ર મેળવો.
    • 26 દ્વારા n ને વિભાજીત કરો.
  3. હવે પરિણામનાં શબ્દમાળાને ઉલટાવી દો કારણ કે અમને જમણેથી ડાબે અક્ષરો મળ્યાં છે.
  4. Versલટું શબ્દમાળા પાછા ફરો.

અમલીકરણ

એક્સેલ શીટ કumnલમ શીર્ષક લીટકોડ સોલ્યુશન માટે સી ++ પ્રોગ્રામ

#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

એક્સેલ શીટ કumnલમ શીર્ષક લીટકોડ સોલ્યુશન માટે જાવા પ્રોગ્રામ

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

એક્સેલ શીટ કumnલમ શીર્ષક લીટકોડ સોલ્યુશન માટે જટિલતા વિશ્લેષણ

સમય જટિલતા

ઓ (લોગ (એન)): જ્યાં n એ આપેલ ક columnલમ નંબર છે. અમે દરેક પુનરાવૃત્તિમાં સંખ્યાને 26 દ્વારા વિભાજીત કરીએ છીએ, તેથી સમય જટિલતા ઓ (લોગ (એન)) હશે.

અવકાશ જટિલતા 

ઓ (1): અમે પરિણામ સંગ્રહિત કરવા સિવાય કોઈ વધારાની જગ્યા વાપરી રહ્યા નથી.