लिपिकोड समाधानमा वर्णांकबाट स्ट्रिंग ड्रिक्रिप्ट गर्नुहोस्


कठिनाई तह सजिलो
बारम्बार सोधिन्छ Quip SalesForce
घागो

समस्या वक्तव्य

यस समस्यामा हामीलाई अंक (०- 0) र '#' समावेश भएको स्ट्रि given दिइन्छ। हामीले यस स्ट्रिलाई निम्न म्यापि using प्रयोग गरेर सानो अंग्रेजी अंग्रेजी अक्षरहरूमा स्ट्रि aमा रूपान्तरण गर्नुपर्नेछ।

लिपिकोड समाधानमा वर्णांकबाट स्ट्रिंग ड्रिक्रिप्ट गर्नुहोस्

उदाहरणका

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

व्याख्या:

"१० #" -> "j", "११ #" -> "के", "१" -> "ए", "२" -> "बी"।

s = "1326#"
"acz"

व्याख्या:

"१" -> "ए", "” "->" सी "," २ # # "->" z "।

दृष्टिकोण

हामी देख्न सक्छौं कि हामीले मात्र '#' को लागी चिन्ता लिनु पर्छ। जब हामी दिईएको स्ट्रि letलाई बायाँबाट दायाँ काउन्टर (आइए) प्रयोग गरेर पार गर्छौं, तब, प्रत्येक अनुक्रमणिका i (० <= i <= n-0) को लागी, हामीले भर्खर i बाट अर्को अनुक्रमणिकाको छेउमा क्यारेक्टर जाँच गर्नुपर्नेछ। अर्थात अनुक्रमणिका i + २ मा वर्ण '#' हो।

प्रत्येक आई (० देखि n-)) को लागि, यदि अनुक्रमणिका i + २ मा वर्ण '#' छ भने यो अनुक्रमणिका i + १ सँग मिलाउनुहोस् र यी दुई अ using्कहरू प्रयोग गरेर एक वर्ण बनाउनुहोस्।
उदाहरणको लागि "१२ #", यदि हामीले स्ट्रिंगलाई बाँयाबाट दायाँ पार गर्‍यौं भने, हामी देख्छौं कि i = ० तब अनुक्रमणिका i + २ मा '#' हुन्छ। यस प्रकार अनुक्रमणिका i र i + १ मा भएका अंकहरूलाई जोड्नुहोस् अर्थात् अ 12्क १ र २ लाई मिलाउनुहोस्, तिनीहरूलाई “१२” बनाउनुहोस्। अब यसको क्यारेक्टर म्यापि 0 १२ मा रूपान्तरण गर्नुहोस् "l" र यसलाई थप गर्नुहोस् स्ट्रिंगबिल्डर sb
स्ट्रि “" १२ "लाई क्यारेक्टर 'l' मा रूपान्तरण गर्न हामीले रूपान्तरण प्रकार्य सिर्जना गरेका छौं, जुन संख्या स्ट्रिंग ढाँचामा लिन्छ र यसलाई सम्बन्धित वर्णमा रूपान्तरण गर्दछ।
र यदि अनुक्रमणिका i + २ मा वर्ण '#' छैन भने हामीले अनुक्रमणिका i + १ मा वर्णको साथ अनुक्रमणिका i लाई वर्ण जोड्नुहुँदैन।

उदाहरणको लागि "१२123", यदि हामी अनुक्रमणिका i = ० बाट देख्छौं भने, अनुक्रमणिका i + २ अर्थात २ मा चरित्र '#' होइन, त्यसैले हामी केवल उत्तरमा "१" को रूपान्तरण थप्नेछौं।

अनुक्रमणिका n-2 र n-1 मा चरित्रको लागि, हामी भन्न सक्दछौं कि यदि n-1 मा चर पहिले नै '#' हुन्छ भने हामी अनुक्रमणिका n-3 पछि लुपबाट बाहिर जान्छौं, अन्यथा दुवै n-2 मा र n-1 अलग म्याप गर्नु पर्छ।

कार्यान्वयन

C ++ डिक्राइप्ट स्ट्रि Alको लागि वर्णमालादेखि इन्टिजर म्यापि Le Leccode समाधान

#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

जाभा प्रोग्राम डिक्राइप्ट स्ट्रि forको लागि वर्णमालादेखि इन्टिजर म्यापि Le लाईटकोड समाधान सम्म

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

डिक्रिप्ट स्ट्रि forको लागि जटिलता विश्लेषण वर्णमाला देखि पूर्णांक मानचित्रण Leetcode समाधान

समय जटिलता

O (n): किनकि हामी हाम्रो इनपुट स्ट्रि line लाई लाइन बाट बायाँ देखि दायाँ तर्दै छौं यसैले O (n) समय लिनेछ।

ठाउँ जटिलता 

O (n): हामी जाभा र स्ट्रि stream स्ट्रिमको मामलामा स्ट्रि build बिल्डर प्रयोग गर्यौं। खराब अवस्थामा त लम्बाई इनपुट स्ट्रिंग लम्बाई जस्तै हुनेछ। यसैले, स्पेस जटिलता पनि O (n) हो।