Խառնել լարի կոդերի լուծումը


Դժվարության մակարդակ Հեշտ
Հաճախակի հարցնում են facebook
դասավորում

Խնդրի հայտարարություն

«Shuffle String» խնդրում մեզ տրվում է ա String և զանգված: Rayանգվածը պարունակում է լարի բնույթի նոր ցուցանիշներ: Այսպիսով, զանգվածը [i] ներկայացնում է բնույթի նոր դիրք լարի երկրորդ դիրքում:

«Shuffle String» - ում մենք պետք է փոխենք լարի նիշերը այնպես, որ լարի ith բնույթը տեղափոխվի ցուցանիշներ [i] - ի դիրքը և վերադարձնի նոր խառնաշփոթ տողը:

Օրինակ

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

Բացատրությունը.

նիշերի նոր դիրքը հետևյալն է.

ա-> 1

r-> 0

t-> 2

Այսպիսով, հերոսները խառնվելուց հետո խառնված լարերը առնետ են:

Shuffle String Leetcode Solution- ի մոտեցումը

«Shuffle String» խնդիրը հիմնականում իրականացման խնդիր է, որտեղ մենք պետք է ավելի շատ կենտրոնանանք իրականացման մասի վրա: Այստեղ մենք պետք է ութերորդ դիրքում առկա նիշ նշանակենք [i] - ի դիրքին: Դա ավելի պարզ կլինի ստորև ներկայացված նկարից:

Shuffle String- ի leetcode լուծում

Ինչպես ցույց է տրված պատկերում, «ա» -ն տեղափոխվում է թիվ 1 ինդեքս, «r» -ը տեղափոխվում է ցուցիչ թիվ 0, իսկ «t» -ը տեղափոխվում է ինդեքս թիվ 2: Այսպիսով, վերջին լարը խառնաշփոթի գործողությունը կատարելուց հետո դառնում է «առնետ »

Այսպիսով, մենք կօգտագործենք լարային նոր փոփոխական `արդյունքը պահելու և այն նախնական տողերով նախաստորագրելու համար: եկեք կոչենք այն արդյունք լարային Այժմ մենք կշեղվենք ինդեքսների զանգվածից և արդյունքը [ինդեքսները [i]] կհանձնարարենք նույն դիրքում:

Վերջում արդյունքի տողը կպարունակի նոր խառնված տողը:

Իրականացման

C ++ ծածկագիր Shuffle String- ի համար

#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

Java կոդ Shuffle String- ի համար

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

Խառնաշփոթ տողերի լեոդ կոդերի լուծման բարդության վերլուծություն

Timeամանակի բարդությունը

Վերոնշյալ ծածկագրի ժամանակի բարդությունն է O (n) քանի որ մենք միայն մեկ անգամ ենք անցնում ցուցանիշները: Այստեղ n- ը ներկայացնում է լարի նիշերի քանակը:

Տիեզերական բարդություն

Վերոնշյալ ծածկագրի տիեզերական բարդությունն է Ո (1) քանի որ մենք պատասխանը պահելու համար օգտագործում ենք միայն փոփոխական:

Սայլակ