פתרון גיליון של עמוד גיליון של Excel


רמת קושי קַל
נשאל לעתים קרובות מיקרוסופט
מתמטיקה מערכת מספר

הצהרת בעיה

בבעיה זו אנו מקבלים כותרת עמודה כפי שהיא מופיעה בגיליון Excel, עלינו להחזיר את מספר העמודה המתאים לאותו כותרת העמודה ב- Excel כפי שמוצג להלן.

פתרון גיליון של עמוד גיליון של Excel

דוגמה

#1

"AB"
28

#2

"ZY"
701

גישה

כדי למצוא מספר עמודה עבור כותרת עמודה מסוימת נוכל לחשוב על זה כמו המרה ממערכת מספרים אחת למערכת מספרים אחרת.
כמו במספר עשרוני יש לנו תווים 0 עד 9 שייצגו כל מספר בעשרוני. באופן דומה בכותרת העמודה התווים הם מ- A עד Z כדי לייצג מספר כלשהו. יש בסך הכל 26 סמלים לכל מקום, ולכן אנו יכולים לחשוב על מספר במערכת שהבסיס שלה הוא 26.

עכשיו השאלה הופכת לפשוטה מאוד. כמו שאנחנו ממירים כל מספר בינארי או הקסא-עשרוני לצורתו העשרונית, עלינו להמיר מחרוזת כותרת זו למספר עשרוני.

לדוגמא, אם ברצוננו למצוא את הערך העשרוני של מחרוזת "1337", אנו יכולים למצוא את המספר איטרטיבי על ידי חציית המחרוזת משמאל לימין באופן הבא:
'1' = 1
'13' = (1 x 10) + 3 = 13
'133' = (13 x 10) + 3 = 133
'1337' = (133 x 10) + 7 = 1337

כעת בבעיה זו כאשר אנו מתמודדים עם מערכת מספרים בסיס 26. בהתבסס על אותו רעיון, אנחנו יכולים פשוט להחליף 10s ל- 26s ולהמיר אלפבית למספרים.

לכותרת "LEET":

L = 12
E = (12 x 26) + 5 = 317
E = (317 x 26) + 5 = 8247
T = (8247 x 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

תוכנית Java עבור Excel פתרון מספר קוד העמודה Leetcode

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

מורכבות זמן

O (N): כאשר N הוא המספר הכולל של תווים במחרוזת הקלט. איכלנו פעם אחת לאורך הדמויות, ולכן מורכבות הזמן תהיה O (N).

מורכבות בחלל 

O (1): פשוט השתמשנו במשתנה שלם אחד לאחסון התוצאה.