এক্সেল শীট কলাম শিরোনাম লেটকোড সমাধান


কাঠিন্য মাত্রা সহজ
প্রায়শই জিজ্ঞাসা করা হয় রৌদ্রপক্ব ইষ্টক গুগল
ম্যাথ সংখ্যা সিস্টেম

সমস্যা বিবৃতি

এই সমস্যায় একটি ইতিবাচক পূর্ণসংখ্যা দেওয়া হয় যা কোনও এক্সেল শীটের কলাম নম্বরকে উপস্থাপন করে, আমাদের এটির সাথে সম্পর্কিত একটি কলামের শিরোনামটি এক্সেল শীটে প্রদর্শিত হবে।

এক্সেল শীট কলাম শিরোনাম লেটকোড সমাধান

উদাহরণ

#1

28
"AB"

#2

701
"ZY"

অভিগমন

এই সমস্যাটি আমাদের যে সমস্যার মধ্যে রয়েছে তার বিপরীত কলামের শিরোনাম থেকে কলাম নম্বরটি সন্ধান করুন।
সুতরাং সেই সমস্যায় আমরা একটি বেস -26 সংখ্যাটিকে বেস -10 সংখ্যায় রূপান্তর করি যা দশমিক সংখ্যা। এই সমস্যায় আমাদের কলাম নম্বর থেকে কলামের শিরোনাম খুঁজে বের করতে হবে। সুতরাং এখানে আমাদের কেবল বিপরীত কাজ করতে হবে, অর্থাত্ একটি বেস -10 (দশমিক) সংখ্যাটিকে বেস -26 সিস্টেমে রূপান্তর করতে হবে।

আমরা জানি যে সংখ্যা সংখ্যা 26 এর সাধারণ সংখ্যাটিতে 26 টি অক্ষর থাকা উচিত যা 0 থেকে 25 এর মান উপস্থাপন করে। তবে এক্সেল শীট কলামের শিরোনামে এটি কিছুটা আলাদা is এটি 1 থেকে 26 পর্যন্ত মানের প্রতিনিধিত্ব করে। সুতরাং আমরা যদি AZ অক্ষর 0-25 হিসাবে ব্যবহার করি তবে এটি নীচের সমীকরণের মতো দেখাবে:

স্ট্রিং এ বি জেড হোক, এটি এন সংখ্যার সাথে মিলে যায়:
n = (এ + 1) * 26 ^ 2 + (বি + 1) * 26 ^ 1 + (জেড + 1) * 26 ^ 0

কেন (এ + 1)? কারণ চর সিস্টেমে 'এ' 0 হয়, তবে এক্সেল সিস্টেমে 'এ' এক হয়। প্রতিটি চর অতিরিক্ত একটি পেতে।

সুতরাং সর্বশেষ চরটি পেতে অর্থাৎ জেড পাওয়ার জন্য আমরা প্রথমে বিয়োগ 1 অর্থাৎ n– এবং তারপরে এন% 26 পেয়ে যাব
(n-1)% 26 = Z
এখন 26 দিয়ে ভাগ করুন এবং পরবর্তী অক্ষরের জন্য একই প্রক্রিয়াটি পুনরাবৃত্তি করুন।
(এন -1) / 26 = (এ + 1) * 26 ^ 1 + (বি + 1) * 26 ^ 0

অ্যালগরিদম

  1. অক্ষরগুলি সংরক্ষণ করার জন্য একটি খালি স্ট্রিং তৈরি করুন।
  2. এন ইতিবাচক হওয়ার সময় একটি লুপ চালান।
    • এন থেকে 1 বিয়োগ করুন।
    • 26 দ্বারা n এর মডুলো করে বর্তমান চরিত্রটি পান।
    • 26 দ্বারা n ভাগ করুন।
  3. এখন ফলাফলের স্ট্রিংটি বিপরীত করুন কারণ আমরা ডান থেকে বামে অক্ষর খুঁজে পেয়েছি।
  4. বিপরীত স্ট্রিংটি ফিরিয়ে দিন।

বাস্তবায়ন

এক্স + শীট কলাম শিরোনাম লেটকোড সমাধানের জন্য সি ++ প্রোগ্রাম

#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 দ্বারা সংখ্যাটি ভাগ করছি, সুতরাং সময়ের জটিলতা হ'ল লগ (এন) হবে।

স্পেস জটিলতা ity 

ও (1): আমরা ফলাফল সংরক্ষণের জন্য অন্য কোনও অতিরিক্ত স্থান ব্যবহার করছি না।