ايڪسل شيٽ ڪالمن جو عنوان ليٽ ڪوڊ حل


تڪليف جي سطح آسان
بار بار پڇڻ ۾ ايڊوب گوگل
Math نمبر سسٽم

مسئلي جو بيان

انهي مسئلي ۾ هڪ مثبت انٽيگر ڏني وئي آهي جيڪا هڪ ايڪسل شيٽ جي ڪالم نمبر جي نمائندگي ڪري ٿي ، اسان کي انهي سان لاڳاپيل ڪالمن جو عنوان ڏيڻو پوندو جئين هڪسل شيٽ ۾ ظاهر ٿئي ٿو.

ايڪسل شيٽ ڪالمن جو عنوان ليٽ ڪوڊ حل

مثال

#1

28
"AB"

#2

701
"ZY"

چرچو

اهو مسئلو ان مسئلي جي ريورس آهي جنهن ۾ اسان کي وٺڻو آهي ڪالمن جي نمبر مان ڪالم نمبر ڳولھيو.
تنهن ڪري ان مسئلي ۾ اسان بي بنياد- 26 نمبر بيس- 10 نمبر ۾ تبديل ڪيو جيڪو هڪ ڊيمل نمبر آهي انهي مسئلي ۾ اسان کي ڪالمن نمبر کان ڪالم جو عنوان ڳولڻ گهرجي. تنهن ڪري هتي اسان کي صرف هڪڙي ڀرڻو پوندو ، يعني اسان کي بنيادي بنياد نمبر 10 (ڊيسيمل) نمبر بيس نمبر 26 سسٽم ۾ تبديل ڪرڻو پوندو.

اسان numberاڻون ٿا عام تعداد جي نظام ۾ فرض ڪيو بي بنياد 26 کي 26 اکرن هجڻ گھرجي جيڪا قدر 0 کان 25 جي نمائندگي ڪن ٿا. پر ايڪسل شيٽ ڪالم عنوان ۾ ھي ٿورو مختلف آھي. اهو 1 کان 26 تائين قدر جي نمائندگي ڪري ٿو. تنهنڪري جيڪڏهن اسين AZ کي 0-25 طور استعمال ڪندا آهيون ، ته اهو هيٺين مساوات وانگر نظر ايندو.

اچو ته ABZ هجڻ گهرجي ، اهو نمبر ن سان مشابهت آهي:
ن = (اي + 1) * 26 ^ 2 + (بي + 1) * 26 ^ 1 + (ز + 1) * 26 ^ 0

ڇو (اي + 1)؟ ڇاڪاڻ ته چار سسٽم ۾ ’الف‘ 0 آهي ، پر هڪسل سسٽم ۾ ’الف‘ هڪ آهي. هر خير هڪ هڪ اضافي حاصل.

تنهن ڪري آخري چار حاصل ڪرڻ لاءِ Z مان اسان پهريون نمبر 1 يعني n– ۽ پوءِ n٪ 26 حاصل ڪنداسين
(ن -1)٪ 26 = زي
هاڻي 26 سان ورهايو ۽ ساڳيو عمل ايندڙ ڪردار لاءِ ورجايو.
(ن -1) / 26 = (اي + 1) * 26 ^ 1 + (بي + 1) * 26 ^ 0

الورورٿم

  1. ڪردارن کي محفوظ ڪرڻ لاءِ خالي اسٽرنگ ٺاهيو.
  2. لوپ هلائيندا جڏهن ته ن مثبت آهي.
    • ضمني 1 ن کان.
    • 26 پاران ن جي ماڊيوولو ڪري هاڻوڪو ڪردار حاصل ڪيو.
    • اين 26 کان ورهايو.
  3. ھاڻي نتيجو واري اسٽرنگ کي موٽيو ڇاڪاڻ ته اسان کي دائیں کان کاٻي کان اکر مليا آھن
  4. ريورسنگ اسٽرنگ واپس ڪريو.

تي عملدرآمد

C ++ پروگرام لاءِ ايڪسل شيٽ ڪالمن جو عنوان ليوٽ ڪوڊ حل

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

string convertToTitle(int n) 
{        
    string ans;
    while(n>0)
    {
        --n;
        int d= n%26;
        n/=26;
        ans+= 'A'+d;            
    }
   reverse(ans.begin(),ans.end());
   return ans; 
}

int main() 
{
   cout<<convertToTitle(28) <<endl;
   return 0; 
}
AB

جاوا پروگرام لاءِ ايڪسسل شيٽ ڪالمن جو عنوان ليوٽ ڪوڊ حل

class Rextester{
    
    public static String convertToTitle(int n) 
    {
        StringBuilder ans= new StringBuilder();
        while(n>0)
        {
            --n;
            int d= n%26;
            n/=26;
            ans.append((char)('A'+d));            
        }
        ans.reverse();
        return ans.toString(); 
    }
    
    public static void main(String args[])
    {    	
       System.out.println( convertToTitle(28)  ) ;
    }
}
AB

ايڪسل شيٽ ڪالمن عنوان لئٽ ڪوڊ حل لاءِ پيچيدگي تجزيو

وقت جي پيچيدگي

اي (لاگ (اين)): جتي n ڏنو ويو ڪالم نمبر. اسان نمبر کي هر ورثي ۾ 26 ذريعي ورهائي رهيا آهيون ، تنهنڪري وقت جي پيچيدگي هوندي O (log (n)).

خلائي پيچيدگي 

اي (1): اسان نتيجو کي ڪتب آڻڻ لاءِ اضافي طور تي ڪابه اضافي جاءِ استعمال نه ڪري رهيا آهيون.