Shuffle String Leetcode Solution


Кыйынчылык деңгээли жеңил
Көп суралган Facebook
сорттоо

Көйгөйдү айтуу

"Shuffle String" көйгөйүндө бизге а аркан жана массив. Массив саптын символунун жаңы индекстерин камтыйт. Ошентип, [i] массиви саптын ith абалындагы жаңы мүнөздөгү абалды билдирет.

"Shuffle String" сабында биз кылдын символдорун ith символу индекстерге [i] позицияга өтүп, жаңы аралашкан сапты кайтарып бергидей кылып аралаштырышыбыз керек.

мисал

s = "art", indices = [1,0,2]
rat

Explanation:

каармандардын жаңы позициясы төмөнкүдөй:

a-> 1

r-> 0

t-> 2

Ошентип, белгилер аралаштырылгандан кийин аралаштырылган сап чычкан болот.

Shuffle String Leetcode Solution ыкмасы

"Shuffle String" көйгөйү, негизинен, ишке ашыруу көйгөйү, анда биз ишке ашыруу бөлүгүнө көбүрөөк көңүл бурушубуз керек. Бул жерде биз индексте [i] позицияда турган белгини беришибиз керек. Бул төмөндөгү сүрөттөн дагы даана көрүнөт.

leetcode чечими менен Shuffle String

Сүрөттө көрсөтүлгөндөй, "а" индекстин 1-номерине, "r" индекстин 0-ге, ал эми "t" 2-индекске жылдырылат. Ошентип, аралаштыруу операциясын аткаргандан кийин акыркы сап "келемишке" айланат ”.

Ошентип, натыйжаны сактоо үчүн баштапкы сап менен инициализациялоо үчүн жаңы сап өзгөрмөсүн колдонобуз. аны чакыралы жыйынтык сап. Эми биз индекстер массивин кыдырып, [индекстер [i]] натыйжасын берүү үчүн ith позициясына символ беребиз.

Аягында, натыйжа сапында жаңы аралаштырылган сап камтылат.

ишке ашыруу

Shuffle String үчүн C ++ коду

#include <bits/stdc++.h> 
using namespace std; 
     string restoreString(string s, vector<int>& indices) {
        string res = s;
        for(int i =0; i < indices.size(); ++i)
            res[indices[i]] = s[i];
        return res;
    }
int main() 
{ 
 string s="art";      
 vector<int> arr = { 1,0,2 }; 
 cout<<restoreString(s,arr)<<endl; 
 return 0;
}
rat

Shuffle String үчүн Java коду

import java.util.Arrays; 
public class Tutorialcup {
    public static  String restoreString(String s, int[] indices) {
        StringBuilder res = new StringBuilder(s);
        for(int i =0; i < indices.length; ++i)
             res.setCharAt(indices[i],s.charAt(i));
        return res.toString();
    }
  public static void main(String[] args) {
    String s="art";  
    int [] arr = {1,0,2}; 
    String ans=  restoreString(s,arr);
    System.out.println(ans);
  }
}
rat

Shuffle String Leetcode чечиминин татаалдыгын талдоо

Убакыттын татаалдыгы

Жогорудагы коддун убакыттын татаалдыгы O (N) анткени биз индекстерди бир гана жолу кыдырып жатабыз. Бул жерде n саптагы белгилердин санын билдирет.

Космостун татаалдыгы

Жогорудагы коддун мейкиндик татаалдыгы O (1) анткени биз жоопту сактоо үчүн өзгөрмө гана колдонобуз.

шилтемелер