Excel Vərəq Sütun Sayı Leetcode Həlli

Çətinlik səviyyəsi Asan
Tez-tez soruşulur microsoft
alqoritmlər kodlaşdırma müsahibə müsahibə hazırlığı LeetCode LeetCodeSolutions Riyaziyyat Sayı SistemiBaxılıb 33

Problem bəyanat

Bu problemdə bizə Excel vərəqində göründüyü kimi bir sütun adı verilir, aşağıda göstərildiyi kimi Excel-də həmin sütun başlığına uyğun sütun nömrəsini qaytarmalıyıq.

Excel Vərəq Sütun Sayı Leetcode Həlli

misal

#1

"AB"
28

#2

"ZY"
701

Yanaşma

Müəyyən bir sütun başlığı üçün sütun nömrəsini tapmaq üçün onu düşünə bilərik bir say sistemindən digər say sisteminə çevrilmək.
Onluq sayda olduğu kimi hər hansı bir ədədi ondalık şəkildə göstərmək üçün 0-dan 9-a qədər simvollarımız var. Eyni şəkildə sütun başlığında hər hansı bir ədədi təmsil etmək üçün simvollar A-dan Z-ə qədərdir. Hər yer üçün cəmi 26 simvol var, buna görə bazası 26 olan bir sistemdə bir rəqəm düşünə bilərik.

İndi sual çox sadə olur. Hər hansı bir ikili və ya hexa-onluq ədədi onluğa çevirdiyimiz kimi, bu başlıq sətirini də onluğa çevirməliyik.

Məsələn, “1337” sətrinin ondalık dəyərini tapmaq istəyiriksə, sətri soldan sağa aşağıdakı şəkildə keçərək sayını təkrarən tapa bilərik:
'1' = 1
'13' = (1 x 10) + 3 = 13
'133' = (13 x 10) + 3 = 133
'1337' = (133 x 10) + 7 = 1337

İndi bu problemdə baza-26 say sistemi ilə məşğul oluruq. Eyni fikrə əsaslanaraq, 10-luqları 26-larla əvəz edib əlifbaları rəqəmlərə çevirə bilərik.

“LEET” adı üçün:

L = 12
E = (12 x 26) + 5 = 317
E = (317 x 26) + 5 = 8247
T = (8247 x 26) + 20 = 214442

Həyata keçirilməsi

Excel Cədvəl Sütun Sayı Leetcode Həlli üçün C ++ Proqramı

#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 Vərəq Sütun Sayı Leetcode Həlli üçün Java Proqramı

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 Vərəq Sütun Sayı Leetcode Həlli üçün Mürəkkəblik Analizi

Zamanın mürəkkəbliyi

O (N): N - giriş sətrindəki ümumi simvol sayı. Simvollar boyunca bir dəfə təkrarladıq, beləliklə zamanın mürəkkəbliyi O (N) olacaqdır.

Kosmik Mürəkkəblik 

O (1): Nəticəni saxlamaq üçün sadəcə bir tam dəyişən istifadə etdik.

Şərh yaz

Translate »
1