Sətrin şifrəsini Əlifbadan Tamamın Xəritəçəkmə Leetcode həllinə verin

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Quip Salesforce
alqoritmlər kodlaşdırma müsahibə müsahibə hazırlığı LeetCode LeetCodeSolutions SimBaxılıb 23

Problem bəyanat

Bu problemdə bizə (0-9) və '#' rəqəmlərini ehtiva edən bir sətir verilir. Aşağıdakı xəritələşdirmədən istifadə edərək bu sətri kiçik ingilis hərflərinin sətirinə çevirməliyik.

Sətrin şifrəsini Əlifbadan Tamamın Xəritəçəkmə Leetcode həllinə verinPin

misal

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

Explanation:

“10 #” -> “j”, “11 #” -> “k”, “1” -> “a”, “2” -> “b”.

s = "1326#"
"acz"

Explanation:

“1” -> “a”, “3” -> “c”, “26 #” -> “z”.

Yanaşma

Sadəcə '#' ilə maraqlanmalı olduğumuzu görə bilərik. Verilən sətri sayğacdan istifadə edərək soldan sağa keçək (icazə verin i), onda hər bir indeks üçün (0 <= i <= n-3), i-dən sonrakı indeksin yanındakı işarənin olub olmadığını yoxlamalıyıq. yəni i + 2 indeksindəki simvol '#' dir.

Hər bir i üçün (0-dan n-3-ə), i + 2 indeksindəki simvol '#' olduqda, bu i indeksini i + 1 ilə birləşdirin və bu iki rəqəmdən istifadə edərək bir simvol yaradın.
məsələn “12 #”, sətri soldan sağa keçirsək, i = 0 olduqda i + 2 indeksindəki simvolun '#' olduğunu görürük. Beləliklə, i və i + 1 indekslərində mövcud olan rəqəmləri birləşdirin, yəni 1 və 2 rəqəmlərini birləşdirin, onları “12” edin. İndi 12 nişanını “l” işarəsinə çevirin və əlavə edin sim qurucusu sb
“12” sətirini “l” simvoluna çevirmək üçün sıra formatında bir sıra götürən və uyğun işarəyə çevirən çevirmə funksiyası yaratdıq.
Əgər i + 2 indeksindəki simvol '#' deyilsə, i indeksindəki i ilə i + 1 indeksindəki simvolları birləşdirməməliyik.

məs. “123”, əgər i = 0 indeksindən görürüksə, i + 2 indeksi, yəni 2-dəki simvol '#' deyil, buna görə cavabımıza yalnız "1" -in simvol çevrilməsini əlavə edəcəyik.

N-2 və n-1 indeksindəki simvol üçün deyə bilərik ki, n-1-dəki char artıq '#' olardısa, indeks n-3-dən sonra döngədən çıxmış olacağıq, başqa hər iki simvol n-2-də və n-1 ayrıca eşlenmelidir.

Həyata keçirilməsi

Əlifbadan Bütöv Xəritəçəkmə Leccode Solution-a şifrəni açmaq üçün C ++ proqramı

#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

Əlifbadan bütöv xəritələmə Leetcode həllinə şifrəni açmaq üçün Java proqramı

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

Əlifbadan Tamamın Xəritəçəkmə Leccode Solution-a dekripti sətri üçün komplekslik analizi

Zamanın mürəkkəbliyi

O (n): Giriş sətrimizi soldan sağa xətti keçdiyimiz üçün O (n) vaxtı alınacaq.

Kosmik Mürəkkəblik 

O (n): Java və cpp-də simli axın vəziyyətində bir simli qurucudan istifadə etdik. Ən pis halda uzunluq giriş sətri uzunluğu ilə eyni olardı. Beləliklə, kosmik mürəkkəblik də O (n) -dir.

Şərh yaz

Translate »
1