বর্ণমালা থেকে পূর্ণসংখ্যার ম্যাপিং লেটকোড সমাধানে ডিক্রিপ্ট স্ট্রিং


কাঠিন্য মাত্রা সহজ
প্রায়শই জিজ্ঞাসা করা হয় পরিহাস বিক্রয় বল
স্ট্রিং

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

এই সমস্যায়, আমাদের কাছে অঙ্ক (0-9) এবং '#' যুক্ত স্ট্রিং দেওয়া হয়। নীচের ম্যাপিংটি ব্যবহার করে আমাদের এই স্ট্রিংটিকে ছোট হাতের ইংরেজি বর্ণের একটি স্ট্রিংয়ে রূপান্তর করতে হবে।

বর্ণমালা থেকে পূর্ণসংখ্যার ম্যাপিং লেটকোড সমাধানে ডিক্রিপ্ট স্ট্রিং

উদাহরণ

s = "10#11#12"
"jkab"

ব্যাখ্যা:

"10 #" -> "জে", "11 #" -> "কে", "1" -> "ক", "২" -> "খ"।

s = "1326#"
"acz"

ব্যাখ্যা:

"1" -> "এ", "3" -> "সি", "26 #" -> "জেড"।

অভিগমন

আমরা দেখতে পাচ্ছি যে আমাদের কেবল '#' নিয়ে উদ্বেগ করতে হবে। যখন আমরা প্রদত্ত স্ট্রিংটি কাউন্টার ব্যবহার করে বাম থেকে ডানদিকে ট্র্যাজ করি (i আমি), তারপরে, প্রতিটি সূচী i (0 <= i <= n-3) এর জন্য, কেবলমাত্র i থেকে পরবর্তী সূচকের পাশের অক্ষরটি পরীক্ষা করতে হবে have সূচক i + 2 এ অক্ষরটি '#'।

প্রতিটি আই (0 থেকে এন -3) এর জন্য, যদি সূচক i + 2 এ অক্ষর '#' হয় তবে এই সূচক i কে i + 1 এর সাথে একত্রিত করুন এবং এই দুটি সংখ্যা ব্যবহার করে একটি অক্ষর তৈরি করুন।
উদাহরণস্বরূপ, "12 #", যদি আমরা স্ট্রিংটি বাম থেকে ডানে অতিক্রম করি, আমরা দেখতে পাই যে আমি যখন i = 0 তখন সূচক i + 2 এর অক্ষর '#' হয়। সুতরাং সূচকগুলিতে উপস্থিত অঙ্কগুলি একত্রিত করুন i এবং i + 1 অর্থাত্ 1 এবং 2 সংখ্যার সমন্বয় করুন, তাদের "12" করুন। এখন 12 কে এর অক্ষর ম্যাপিং অর্থাৎ "l" তে রূপান্তর করুন এবং এটিকে যুক্ত করুন স্ট্রিংবিল্ডার sb।
স্ট্রিং "12" কে অক্ষর 'l' তে রূপান্তর করতে, আমরা একটি রূপান্তর ফাংশন তৈরি করেছি, যা স্ট্রিং ফর্ম্যাটে একটি সংখ্যা নিয়ে এটি যথাযথ অক্ষরে রূপান্তরিত করে।
এবং যদি সূচক i + 2-তে অক্ষরটি '#' না হয় তবে আমাদের সূচীতে i + 1 এর অক্ষরের সাথে সূচক i তে অক্ষর একত্রিত করা উচিত নয়।

উদাহরণস্বরূপ "123", যদি আমরা সূচক i = 0 থেকে দেখি, সূচক i + 2 অর্থাত্ 2 এর অক্ষর '#' নয়, সুতরাং আমরা আমাদের উত্তরে কেবল "1" এর অক্ষর রূপান্তরকে যুক্ত করব।

সূচক এন -2 এবং এন -1 এর চরিত্রের জন্য, আমরা বলতে পারি যে যদি এন -1 এ চরটি ইতিমধ্যে '#' হয়ে থাকে তবে আমরা সূচক এন -3 এর পরে লুপের বাইরে চলে যাব, অন্যথায় দুটি অক্ষর এন -2 এ থাকবে এবং এন -1 অবশ্যই আলাদাভাবে ম্যাপ করা উচিত।

বাস্তবায়ন

বর্ণমালা থেকে পূর্ণসংখ্যার ম্যাপিং লেটকোড সমাধানে ডিক্রিপ্ট স্ট্রিংয়ের জন্য সি ++ প্রোগ্রাম

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

char convert(string str){
    stringstream ss(str);
    int num;
    ss>>num;
    return num+96;
}

string freqAlphabets(string s) {
        stringstream ss;
        int i=0;
        while(i<s.length()-2){
            char ch;
            if(s[i+2]=='#'){
                ch=(char)convert(s.substr(i, 2) );
                i+=2;
            }else{
                ch=(char)convert(s.substr(i,1));
            }
            i++;
            ss<<ch;
        }
        while(i<s.length()){
            char ch=(char)convert(s.substr(i,1));
            ss<<ch;
            i++;
        }
        
        return ss.str();
    }

int main()
{
    cout << freqAlphabets("1326#") ;
}
acz

বর্ণমালা থেকে পূর্ণসংখ্যার ম্যাপিং লেটকোড সমাধানে ডিক্রিপ্ট স্ট্রিংয়ের জন্য জাভা প্রোগ্রাম

import java.util.*;
import java.lang.*;

class Rextester
{  
    public static String freqAlphabets(String s) {
        StringBuilder sb=new StringBuilder();
        int i=0;
        while(i<s.length()-2){
            char ch;
            if(s.charAt(i+2)=='#'){
                ch=(char)convert(s.substring(i,i+2));
                i+=2;
            }else{
                ch=(char)convert(s.substring(i,i+1));
            }
            i++;
            sb.append(ch);
        }
        while(i<s.length()){
            char ch=(char)convert(s.substring(i,i+1));
            sb.append(ch);
            i++;
        }
        
        return sb.toString();
    }
    
    
    public static int convert(String str){
        int num=Integer.parseInt(str);
        return num+96;
    }

    public static void main(String args[])
    {
        System.out.println(freqAlphabets("10#11#12"));
    }
}
jkab

বর্ণমালা থেকে পূর্ণসংখ্যা ম্যাপিং লেটকোড সমাধানের ডিক্রিপ্ট স্ট্রিংয়ের জটিলতা বিশ্লেষণ

সময় জটিলতা

চালু): কারণ আমরা আমাদের ইনপুট স্ট্রিংটি বাম থেকে ডানদিকে রৈখিকভাবে অনুসরণ করছি যাতে ও (এন) সময় নেওয়া হবে।

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

চালু): আমরা সিপিপিতে জাভা এবং স্ট্রিং স্ট্রিমের ক্ষেত্রে স্ট্রিং বিল্ডার ব্যবহার করেছি। সবচেয়ে খারাপ ক্ষেত্রে দৈর্ঘ্য ইনপুট স্ট্রিং দৈর্ঘ্যের সমান হবে। সুতরাং, স্থান জটিলতা ও (এন) হয়।