Решение за лет-код со колона со листови во Excel  


Ниво на тешкотија Лесно
Често прашувано во Мајкрософт
алгоритми кодирање интервју интервју подготви LeetCode LeetCodeSolutions Математика Број систем

Изјава за проблем  

Во овој проблем, ни е даден наслов на колона како што се појавува во Excel лист, ние мора да го вратиме бројот на колоната што одговара на тој наслов на колоната во Excel, како што е прикажано подолу.

Решение за лет-код со колона со листови во Excel

пример

#1

"AB"
28

#2

"ZY"
701

Пристап  

За да најдеме број на колона за одреден наслов на колона, можеме да размислиме за тоа како конвертирање од еден систем на броеви во друг систем на броеви.
Како во децималниот број, имаме знаци од 0 до 9 за да претставуваме кој било број во децимален. Слично во насловот на колоната, ликовите се од А до Ш за да претстават кој било број. Постојат вкупно 26 симболи за секое место, затоа можеме да мислиме на број во системот чија основа е 26.

Сега прашањето станува многу едноставно. Како што конвертираме кој било бинарен или хексадецимален број во неговата децимална форма, ние мора да ја претвориме оваа низа наслови во децимален број.

На пример, ако сакаме да ја најдеме децималната вредност на низата „1337“, можеме итеративно да го најдеме бројот со тоа што ќе ја поминеме низата од лево надесно, како што следува:
'1' = 1
'13' = (1 x 10) + 3 = 13
'133' = (13 x 10) + 3 = 133
'1337' = (133 x 10) + 7 = 1337

Сега во овој проблем бидејќи се занимаваме со систем на броеви на база-26. Врз основа на истата идеја, можеме само да ги замениме 10-те со 26 и да ги претвориме азбуките во броеви.

Видете исто така
Максимална оценка по разделување на низа решение за код

За наслов „LEET“:

L = 12
Е = (12 х 26) + 5 = 317
Е = (317 х 26) + 5 = 8247
Т = (8247 х 26) + 20 = 214442

Имплементација  

Програма C ++ за решение со број на колони во лист Excel

#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

Јава програма за решение со број на колони со листови на Excel

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

Анализа на комплексноста на решението за број на колони во листот на Excel  

Временска комплексност

НА) : Каде што N е вкупниот број на карактери во влезната низа. Повторувавме еднаш по ликовите, па оттука и сложеноста на времето ќе биде O (N).

Комплексноста на просторот 

О (1): Само што употребивме една цел број променлива за зачувување на резултатот.

1