الف بي کان انٽيگر ميپنگ ليٽ ڪوڊ جو حل تائين ڊيريڪٽ ڪريو


تڪليف جي سطح آسان
بار بار پڇڻ ۾ چوپ Salesforce،
اسٽرنگ

مسئلي جو بيان

ھن مسئلي ۾ ، اسان کي ھڪڙي انگ اکر ڏنل آھي (0-9) ۽ '#'. اسان کي هيٺين نقشه ڪتب آڻيندي انهي نن stringڙي انگريزي اکرن جي قطار ۾ واري واري کي تبديل ڪرڻو پوندو.

الف بي کان انٽيگر ميپنگ ليٽ ڪوڊ جو حل تائين ڊيريڪٽ ڪريو

مثال

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

وضاحت:

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

s = "1326#"
"acz"

وضاحت:

"1" -> "a" ، "3" -> "c" ، "26 #" -> "z".

چرچو

اسان ڏسون ٿا ته اسان کي رڳو # # جي باري ۾ پريشاني ڪرڻي آهي. جڏهن اسان کاٻي طرف کان کاٻي کان کاٻي طرف تائين کاٻي طرف وڃي رھيا آھيون (i) ، پوءِ ، ھر ھڪ انڊيڪس لاءِ (0 <= i <= n-3) ، اسان کي صرف جانچڻو آھي ته آريان اڳيان ايندڙ انڊيڪس مان ھيٺان ڪردار. يعني انڊيڪس I + 2 تي ڪردار ’#‘ آهي.

هر هڪ لاءِ (0 کان ن-3) ، جيڪڏهن انڊرڪس I + 2 ۾ ڪردار آهي # # ته پوءِ هي انڊيڪس I + 1 سان جوڙيو ۽ انهن ٻن اکرن کي استعمال ڪندي هڪ ڪردار ٺاهيو.
مثال طور “12 #” ، جيڪڏهن اسان کاٻي کان سا rightي طرف واري سورس کي پار ڪري ته ڏسون ٿا ته جڏهن i = 0 ته پوءِ انڊيڪس i + 2 ۾ ڪردار آهي “#”. ان ڪري انڊيڪس i ۽ i + 1 تي موجود عدد گڏ ڪريو يعني عددن 1 ۽ 2 کي ملائي ، انهن کي “12”. ھاڻي 12 کي ان جي ڪردار ميپنگ ۾ بدلائي ڇڏيو يعني “ايل” ۽ ان ۾ شامل ڪريو اسٽرنگ بلڊر بي.
اسٽرنگ “12” کي ڪردار “ايل” ۾ بدلائڻ لاءِ ، اسان هڪ بدلائڻ وارو فنڪشن ٺاهيو آهي ، جيڪو اسٽرنگ جي شڪل ۾ هڪ نمبر کڻندو آهي ۽ انهي کي ملندڙ ڪردار سان تبديل ڪري ٿو.
۽ جيڪڏهن انڊيڪس I + 2 ۾ ڪردار ’#‘ ناهي ته پوءِ اسان انڊيڪس I کي اکر انڊيڪس I + 1 تي ڪردار سان نه ملايو وڃي.

مثال طور ، "123" ، جيڪڏهن اسان انڊيڪس i = 0 مان ڏسون ٿا ، انڊيڪس I + 2 يعني 2 تي ڪردار نه آهي # # ، اهڙي طرح اسان صرف اسان جي جواب ۾ “1” جي ڪردار واري ڪنورينشن کي شامل ڪنداسين.

انڊيڪس n-2 ۽ n-1 تي ڪردار لاءِ ، اسان اهو چئي سگھون ٿا ته جيڪڏهن اين -1 تي چار پهريان ئي موجود آهي # # ، ته پوءِ اسان انڊيڪس اين -3 کان پوءِ لوپ مان ٻاهر هونداسين ، ٻئي نمبر n-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

الفابيٽ کان انٽيگر ميپنگ ليٽ ڪوڊ جو حل تائين ڊيريپنگ اسٽرنگ لاءِ پيچيدگي جو تجزيو

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

اي (ن): ڇاڪاڻ ته اسان لڪيل آهيون اسان جي انپٽ واري تار کي سڌي کان کاٻي کان سا rightي طرف منتقل ڪري رهيا آهيون.

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

اي (ن): اسان کي پي پي ۾ جاوا ۽ اسٽرنگ وهڪرو جي صورت ۾ هڪ اسٽرنگ بلڊر استعمال ڪيو آهي. بدترين حالت ۾ ، ڊيگهه لمبائي واري ان پٽ جي ڊيگهه وانگر هوندي. ان ڪري ، خلا جي پيچيدگي پڻ O (n) آھي.