Excel ကိုစာရွက်ကော်လံအရေအတွက် Leetcode ဖြေရှင်းချက်


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် Microsoft က
သင်္ချာ နံပါတ်စနစ်

ပြProbleနာဖော်ပြချက်

ဤပြproblemနာတွင် Excel စာရွက်တွင်ဖော်ပြထားသည့်အတိုင်းကျွန်ုပ်တို့ကော်လံခေါင်းစဉ်တစ်ခုပေးထားသည်။ အောက်ဖော်ပြပါအတိုင်း Excel ရှိကော်လံခေါင်းစဉ်နှင့်ကိုက်ညီသောကော်လံနံပါတ်ကိုကျွန်ုပ်တို့ပြန်ပို့ရမည်။

Excel ကိုစာရွက်ကော်လံအရေအတွက် Leetcode ဖြေရှင်းချက်

နမူနာ

#1

"AB"
28

#2

"ZY"
701

ချဉ်းကပ်နည်း

သီးခြားကော်လံခေါင်းစဉ်တစ်ခုအတွက်ကော်လံနံပါတ်ကိုရှာဖွေရန်ကျွန်ုပ်တို့စဉ်းစားနိုင်သည် နံပါတ်စနစ်တစ်ခုမှအခြားနံပါတ်စနစ်သို့ပြောင်းလဲခြင်း။
ဒdecimalမကိန်းမှာလိုပဲ 0 ကနေ 9 အထိအက္ခရာတွေရှိတယ်။ အလားတူကော်လံခေါင်းစဉ်တွင်စာလုံးများသည်မည်သည့်နံပါတ်ကိုကိုယ်စားပြုရန် A မှ Z အထိရှိသည်။ နေရာတစ်ခုစီအတွက်အမှတ်သင်္ကေတ ၂၆ လုံးရှိပါတယ်။ ဒါကြောင့် system တစ်ခုရဲ့အခြေခံက ၂၆ ဖြစ်တယ်။

ယခုမေးခွန်းကအရမ်းရိုးရှင်းလာတယ်။ မည်သည့် binary သို့မဟုတ် hexa-decimal နံပါတ်ကိုမဆိုဒdecimalမပုံစံသို့ပြောင်းလဲသကဲ့သို့ကျွန်ုပ်တို့သည်ဤခေါင်းစဉ် string ကိုဒdecimalမကိန်းအဖြစ်ပြောင်းလဲရမည်။

ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်“ 1337” စာကြောင်း၏ဒdecimalမတန်ဖိုးကိုရှာဖွေလိုပါကထိုစာကြောင်းကိုဘယ်ဘက်မှညာဘက်သို့အောက်ပါအတိုင်းဖြတ်သန်းခြင်းဖြင့်နံပါတ်ကိုထပ်မံရှာနိုင်သည်။
'1' = 1
'13' = (1 x 10) + 3 = 13
'133 '= (13 x 10) + 3 = 133
'1337 '= (133 x 10) + 7 = 1337

Base-26 နံပါတ်စနစ်နှင့်ဆက်ဆံရာတွင်ယခုပြproblemနာဖြစ်နေသည်။ တူညီတဲ့အတွေးအခေါ်ကိုအခြေခံပြီး၊ ၁၀ ကို ၂၆ နဲ့ ၂ လုံးအစားထိုးပြီးအက္ခရာတွေကိုနံပါတ်တွေအဖြစ်ပြောင်းနိုင်ပါတယ်။

“ LEET” ခေါင်းစဉ်အတွက်

L ကို = 12
အီး = (12 x ကို 26) + 5 = 317
အီး = (317 x ကို 26) + 5 = 8247
T က = (8247 x ကို 26) + 20 = 214442

အကောင်အထည်ဖော်ရေး

Excel စာရွက်ကော်လံနံပါတ် Leetcode ဖြေရှင်းချက်များအတွက် C ++ အစီအစဉ်

#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 စာရွက်ကော်လံနံပါတ် Leetcode ဖြေရှင်းချက်အတွက် Java ပရိုဂရမ်

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 ကိုစာရွက်ကော်လံအရေအတွက် Leetcode ဖြေရှင်းချက်များအတွက်ရှုပ်ထွေးခွဲခြမ်းစိတ်ဖြာ

အချိန်ရှုပ်ထွေး

အို (N): N သည် input string တွင်စုစုပေါင်းစာလုံးအရေအတွက်ဖြစ်သည်။ ကျွန်ုပ်တို့သည်ဇာတ်ကောင်များတစ်လျှောက်တွင်တစ်ကြိမ်ပြုလုပ်ခဲ့ရသောကြောင့်အချိန်ရှုပ်ထွေးမှုသည်အို (N) ဖြစ်လိမ့်မည်။

အာကာသရှုပ်ထွေးမှု 

အို (၁) ရလဒ်ကိုသိမ်းဆည်းဖို့ကိန်းပြည့်ကိန်းတစ်ခုပဲသုံးတယ်။