एक्सेल पाना स्तम्भ संख्या लीटकोड समाधान


कठिनाई तह सजिलो
बारम्बार सोधिन्छ माइक्रोसफ्ट
गणित नम्बर प्रणाली

समस्या वक्तव्य

यस समस्यामा हामीलाई एक स्तम्भ शीर्षक दिइन्छ जस्तो कि एक एक्सेल पानामा देखा पर्दछ, हामीले स्तम्भ नम्बर फिर्ता गर्नु पर्छ जुन एक्सेलमा त्यस स्तम्भ शीर्षकसँग मिल्छ जुन तल देखाइएको छ।

एक्सेल पाना स्तम्भ संख्या लीटकोड समाधान

उदाहरणका

#1

"AB"
28

#2

"ZY"
701

दृष्टिकोण

एक विशेष स्तम्भ शीर्षक को लागी स्तम्भ नम्बर खोज्न हामी यसको बारे सोच्न सक्छौं एक नम्बर प्रणालीबाट अर्को नम्बर प्रणालीमा रूपान्तरण गर्दै।
दशमलव संख्यामा जस्तै हामीसँग दशमलवमा कुनै संख्यालाई प्रतिनिधित्व गर्न अक्षरहरू ० देखि 0 हुन्छ। त्यस्तै स्तम्भ शीर्षकमा वर्णहरू A देखि Z सम्ममा कुनै पनि संख्या प्रतिनिधित्व गर्दछ। त्यहाँ प्रत्येक स्थानको लागि कुल २ symb प्रतीकहरू छन्, त्यसकारण हामी एउटा प्रणालीमा संख्या सोच्न सक्दछौं जसको आधार २ 9 छ।

अब प्रश्न धेरै सरल हुन्छ। जस्तो कि हामी कुनै बाइनरी वा हेक्सा-दशमलव नम्बरलाई यसको दशमलव रूपमा रूपान्तरण गर्छौं, हामीले यो शीर्षक स्ट्रि aलाई दशमलव संख्यामा रूपान्तरण गर्नुपर्दछ।

उदाहरण को लागी, यदि हामी स्ट्रिंग "१1337" को दशमलव मान खोज्न चाहान्छौं भने हामी क्रमशः क्रमश: बायाँबाट दायाँ पछाडि क्रमश:
'१' = १
'१' '= (१ x १०) + = = १।
'१ 133' = (१ x x १०) + = = १13
'१ 1337' = (१ x x १०) + = = १133

अब यस समस्यामा हामी बेस २ 26 नम्बर प्रणालीसँग काम गरिरहेका छौं। उही विचारको आधारमा, हामी केवल १० सेकेन्डलाई २s सेकेन्ड बदल्न सक्दछौं र अक्षरहरूमा संख्यामा रूपान्तरण गर्न सक्छौं।

शीर्षकको लागि "LEET":

L = 12
E = (१२ x २)) + = = 12१26
E = (१२ x २)) + = = 317१26
T = (8247२26 x x २)) + २० = २१20२

कार्यान्वयन

C ++ एक्सेल पाना स्तम्भ संख्या Leetcode समाधानको लागि कार्यक्रम

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

int titleToNumber(string s)
{        
        int ans=0;        
        for(auto c:s)
        {
          ans= ans*26 + (c-'A'+1);    
        }
    
        return ans;
}

int main() 
{

   cout<<titleToNumber("AB") <<endl;

   return 0; 
}
28

जाभा प्रोग्राम एक्सेल पाना स्तम्भ संख्या लेटकोड समाधानको लागि

class Rextester{
    
  public static int titleToNumber(String s) 
    {             
        int ans=0;
        for(char c:s.toCharArray())
        {
          ans= ans*26 + (c-'A'+1);    
        }
        
        return ans;
    }
    
  public static void main(String args[])
    {
       	
    System.out.println( titleToNumber("AB") ) ;
    }
}
28

एक्सेल पाना स्तम्भ संख्या लीटकोड समाधानको लागि जटिलता विश्लेषण

समय जटिलता

O (N): जहाँ एन इनपुट स्ट्रि inमा क्यारेक्टरहरूको कुल संख्या हुन्छ। हामीले एक पटक क्यारेक्टरहरूको साथ पुनरावृत्ति गर्‍यौं, त्यसैले समय जटिलता O (N) हुनेछ।

ठाउँ जटिलता 

O (१): हामीले भर्खरै एउटा पूर्णांक भेरियबल प्रयोग गरीरहेका छौं परिणामलाई भण्डारण गर्नका लागि।