Jadual Kandungan
Contoh
Arahan
Kaedah: Gunakan Hashmap
Output
Kesimpulan
Rumah pembangunan bahagian belakang C++ Menukar rentetan yang diberikan kepada T, dengan menggantikan aksara antara rentetan beberapa kali

Menukar rentetan yang diberikan kepada T, dengan menggantikan aksara antara rentetan beberapa kali

Sep 10, 2023 pm 04:25 PM
rentetan menggantikan Tukar

Menukar rentetan yang diberikan kepada T, dengan menggantikan aksara antara rentetan beberapa kali

Menukar rentetan bermakna kita perlu menjadikannya sama dengan rentetan yang diberikan berdasarkan syarat yang diberikan. Dalam soalan ini, kita diberikan tatasusunan yang terdiri daripada rentetan "arr" dan rentetan "T" bersaiz "M". Tugas kami adalah untuk menyemak sama ada semua rentetan yang terdapat dalam tatasusunan boleh dibuat sama dengan yang diberikan dengan mengalih keluar sebarang aksara daripada rentetan ( arr[i] ) tatasusunan dan memasukkan aksara itu ke dalam mana-mana indeks rentetan lain Rentetan T A rentetan daripada tatasusunan yang sama ( arr[j] ). Kita boleh melakukan ini seberapa banyak yang kita suka. Mengembalikan "YA" jika semua rentetan dalam tatasusunan boleh dibuat sama dengan rentetan 'T', jika tidak mengembalikan "TIDAK".

Contoh

Input 1: arr = [ “wxyz”, “wxxy”, “wyzz” ], T = “wxyz”
Salin selepas log masuk
Output 1: YES
Salin selepas log masuk

Arahan

Salah satu cara yang mungkin untuk menjadikan semua rentetan dalam tatasusunan sama dengan rentetan T adalah seperti berikut -

  • Padamkan aksara daripada rentetan arr[1] ("wxxy") pada indeks 2 dan masukkannya ke dalam rentetan arr[2] ("wyzz") pada indeks 1. Kemudian ia kelihatan seperti: ["wxyz","wxy","wxyzz"]

  • Padamkan aksara daripada rentetan arr[2] ("wxyzz") pada indeks 3 dan masukkannya ke dalam rentetan arr[1] ("wxy") pada indeks 3. Kemudian ia kelihatan seperti: ["wxyz","wxyz","wxyz"].

Selepas melakukan langkah di atas, kita boleh membuat semua rentetan dalam tatasusunan sama dengan rentetan T. Jadi jawapannya "YA".

Input 2: arr = [ “rts”, “rtw”, “rts” ], T = “rts”
Salin selepas log masuk
Output 2: NO
Salin selepas log masuk

Arahan

Terdapat 3 rentetan dalam tatasusunan, 2 daripadanya sama dengan rentetan T, tetapi rentetan dengan nombor indeks 1 adalah berbeza. Ia mengandungi aksara berbeza yang bukan sebahagian daripada rentetan T. Tidak mungkin untuk menjadikan semua rentetan dalam tatasusunan rentetan T. Oleh itu, jawapannya ialah "TIDAK".

Kaedah: Gunakan Hashmap

Kami telah melihat contoh rentetan yang diberikan di atas, mari kita beralih ke kaedah -

Kami mempunyai dua pemerhatian seperti berikut -

  • Oleh kerana kita mesti menjadikan semua rentetan dalam tatasusunan sama dengan rentetan T, supaya semua aksara setiap rentetan dalam tatasusunan mesti muncul dalam rentetan T. Dengan kata lain, tidak ada watak yang berbeza. Jika tidak, kita tidak boleh memenuhi syarat.

  • Selepas kita mengira kekerapan kejadian aksara untuk semua rentetan dalam tatasusunan, kekerapan kejadian setiap aksara mestilah sama dengan saiz tatasusunan "N".

    < /里>

Berdasarkan pemerhatian di atas, kami mempunyai dua syarat untuk diperiksa.

  • Peta cincang rentetan tatasusunan saiz "freqArr" adalah sama dengan peta cincang "freqT" rentetan "T". sebagai

freqArr.size() == freqT.size()
Salin selepas log masuk
  • Setiap aksara rentetan T hendaklah muncul dalam setiap rentetan tatasusunan. Setiap aksara rentetan T harus mempunyai kiraan kekerapan "N" dalam rentetan tatasusunan. As-

freqArr.find(T[i]) == freqArr.end() and 
freqArr[T[i]] != freqT[T[i]]*N.
Salin selepas log masuk

Kita boleh menggunakan pencincangan untuk menyelesaikan masalah ini kerana kita perlu mengira kekerapan aksara dalam rentetan tatasusunan dan rentetan T.

Contoh

Mari lihat kod kaedah di atas untuk pemahaman yang lebih baik -

// Program to convert all strings to T
#include <bits/stdc++.h>
using namespace std;
string covertStringIntoT( int N, string arr[], string T){
   map< char,int > freqT; //to store the frequency of each character of string T
   int len = T.size(); //getting the size of the string T 
   
   //traverse the string T to store the frequency of the characters
   for( int i=0; i<len; i++){
      freqT[T[i]]++;
   }
   map< char,int > freqArr; //to store the frequency of each chracter of strings 
   
   // of Array.
   //traverse the strings of Array to store the frequency of the characters
   for( int i=0; i<N; i++){
      for(int j=0;j<arr[i].size(); j++){
         freqArr[arr[i][j]]++;
      }
   }
   
   // Check the condition one
   if(freqT.size() != freqArr.size()){
      return "NO";
   }    
   
   //check condition two while trversing the string T
   for( int i=0; i<len; i++){
      if(freqArr.find(T[i]) == freqArr.end() || freqArr[T[i]] != freqT[T[i]]*N ){
         return "NO";
      }
   }
   return "YES";
}
int main() {    
   string T = "wxyz"; // given string
   string arr[] = {"wxyz", "wxyy", "wxzz"}; // given array of strings
   int N = sizeof(arr) / sizeof(arr[0]); //getting the size of the array of string 
   
   // calling the function 'convertStringIntoT' to convert all strings of the 
   
   // array into string T
   string result = covertStringIntoT( N, arr, T);
   if(result == "YES"){
      cout<< result << ", it is possible to make all the strings of the array as string T";
   }
   else{
      cout<< result << ", it is not possible to make all the strings of the array as string T"; 
   }
   return 0;
}
Salin selepas log masuk

Output

YES, it is possible to make all the strings of the array as string T
Salin selepas log masuk

Kerumitan masa dan ruang

Kerumitan masa kod di atas ialah O(M + N*L)

Kerumitan ruang kod di atas ialah O(M)

Di mana M ialah saiz rentetan T, N ialah saiz tatasusunan, dan L ialah rentetan terpanjang yang terdapat dalam tatasusunan.

Kesimpulan

Dalam tutorial ini, kami melaksanakan program yang menukar rentetan yang diberikan kepada T dengan menggantikan aksara antara rentetan seberapa banyak yang perlu. Kami melaksanakan kaedah pencincangan kerana kami perlu menyimpan frekuensi. Dalam kaedah ini, kami terutamanya menyemak dua syarat, jika semua syarat dipenuhi, ini bermakna kami dapat menukar semua rentetan dalam tatasusunan ke dalam rentetan yang sama dengan rentetan T.

Atas ialah kandungan terperinci Menukar rentetan yang diberikan kepada T, dengan menggantikan aksara antara rentetan beberapa kali. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Petua praktikal untuk menukar huruf Inggeris lebar penuh kepada bentuk separuh lebar Petua praktikal untuk menukar huruf Inggeris lebar penuh kepada bentuk separuh lebar Mar 26, 2024 am 09:54 AM

Petua praktikal untuk menukar huruf Inggeris lebar penuh kepada bentuk separuh lebar Dalam kehidupan moden, kita sering bersentuhan dengan huruf Inggeris, dan kita sering perlu memasukkan huruf Inggeris apabila menggunakan komputer, telefon bimbit dan peranti lain. Walau bagaimanapun, kadangkala kita menemui huruf Inggeris lebar penuh, dan kita perlu menggunakan bentuk separuh lebar. Jadi, bagaimana untuk menukar huruf Inggeris lebar penuh kepada bentuk separuh lebar? Berikut adalah beberapa petua praktikal untuk anda. Pertama sekali, huruf dan nombor Inggeris lebar penuh merujuk kepada aksara yang menduduki kedudukan lebar penuh dalam kaedah input, manakala huruf dan nombor Inggeris separuh lebar menduduki kedudukan lebar penuh.

Penjelasan terperinci tentang kaedah pelaksanaan menukar bulan PHP kepada bulan Inggeris Penjelasan terperinci tentang kaedah pelaksanaan menukar bulan PHP kepada bulan Inggeris Mar 21, 2024 pm 06:45 PM

Artikel ini akan memperkenalkan secara terperinci cara menukar bulan dalam PHP kepada bulan Inggeris, dan memberikan contoh kod khusus. Dalam pembangunan PHP, kadangkala kita perlu menukar bulan digital kepada bulan Inggeris, yang sangat praktikal dalam beberapa pemprosesan tarikh atau senario paparan data. Prinsip pelaksanaan, contoh kod khusus dan langkah berjaga-jaga akan diterangkan secara terperinci di bawah. 1. Prinsip pelaksanaan Dalam PHP, anda boleh menukar bulan digital kepada bulan Bahasa Inggeris dengan menggunakan kelas DateTime dan kaedah format. Tarikh

Bagaimana untuk menukar muzik qq kepada format mp3 Tukar muzik qq kepada format mp3 pada telefon mudah alih Bagaimana untuk menukar muzik qq kepada format mp3 Tukar muzik qq kepada format mp3 pada telefon mudah alih Mar 21, 2024 pm 01:21 PM

QQ Music membolehkan semua orang menikmati menonton filem dan menghilangkan kebosanan Anda boleh menggunakan perisian ini setiap hari untuk memenuhi keperluan anda dengan mudah Sebilangan besar lagu berkualiti tinggi tersedia untuk didengari oleh semua orang Lain kali anda mendengarnya, anda tidak memerlukan sambungan Internet Lagu yang dimuat turun di sini bukan dalam format MP3 dan tidak boleh digunakan pada platform lain Selepas lagu keahlian tamat, tiada cara untuk mendengarnya lagi , ramai rakan ingin menukar lagu ke dalam format MP3 Di sini editornya Anda sediakan kaedah supaya semua orang boleh menggunakannya! 1. Buka QQ Music pada komputer anda, klik butang [Menu Utama] di penjuru kanan sebelah atas, klik [Audio Transcoding], pilih pilihan [Tambah Lagu], dan tambah lagu yang perlu ditukar; lagu, klik untuk memilih Tukar kepada [mp3]

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Mar 26, 2024 am 11:45 AM

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Dalam pembangunan PHP, kita sering menghadapi keperluan untuk menukar jenis int kepada jenis rentetan. Penukaran ini boleh dicapai dalam pelbagai cara Artikel ini akan memperkenalkan beberapa kaedah biasa secara terperinci, dengan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Gunakan fungsi terbina dalam PHP strval(). PHP menyediakan fungsi terbina dalam strval() yang boleh menukar pembolehubah jenis yang berbeza kepada jenis rentetan. Apabila kita perlu menukar jenis int kepada jenis rentetan,

Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Apr 02, 2024 pm 03:58 PM

1. Mula-mula buka pycharm dan masukkan halaman utama pycharm. 2. Kemudian buat skrip python baru, klik kanan - klik baru - klik pythonfile. 3. Masukkan rentetan, kod: s="-". 4. Kemudian anda perlu mengulang simbol dalam rentetan sebanyak 20 kali, kod: s1=s*20 5. Masukkan kod output cetakan, kod: print(s1). 6. Akhir sekali jalankan skrip dan anda akan melihat nilai pulangan kami di bahagian bawah: - diulang 20 kali.

Bagaimana untuk menukar huruf Inggeris lebar penuh kepada huruf separuh lebar Bagaimana untuk menukar huruf Inggeris lebar penuh kepada huruf separuh lebar Mar 25, 2024 pm 02:45 PM

Cara menukar huruf Inggeris lebar penuh kepada huruf separuh lebar Dalam kehidupan harian dan kerja, kadangkala kita menghadapi situasi di mana kita perlu menukar huruf Inggeris lebar penuh kepada huruf separuh lebar, seperti semasa memasukkan kata laluan komputer, mengedit dokumen atau mereka bentuk susun atur. Huruf dan nombor Inggeris lebar penuh merujuk kepada aksara dengan lebar yang sama dengan aksara Cina, manakala huruf Inggeris separuh lebar merujuk kepada aksara dengan lebar yang lebih sempit. Dalam operasi sebenar, kita perlu menguasai beberapa kaedah mudah untuk menukar huruf Inggeris lebar penuh kepada huruf separuh lebar supaya kita boleh memproses teks dan nombor dengan lebih mudah. 1. Huruf Inggeris lebar penuh dan huruf Inggeris separuh lebar

Tutorial PHP: Bagaimana untuk menukar jenis int kepada rentetan Tutorial PHP: Bagaimana untuk menukar jenis int kepada rentetan Mar 27, 2024 pm 06:03 PM

Tutorial PHP: Cara Menukar Jenis Int kepada Rentetan Dalam PHP, menukar data integer kepada rentetan adalah operasi biasa. Tutorial ini akan memperkenalkan cara menggunakan fungsi terbina dalam PHP untuk menukar jenis int kepada rentetan, sambil memberikan contoh kod khusus. Gunakan cast: Dalam PHP, anda boleh menggunakan cast untuk menukar data integer kepada rentetan. Kaedah ini sangat mudah Anda hanya perlu menambah (rentetan) sebelum data integer untuk menukarnya menjadi rentetan. Di bawah ialah kod contoh mudah

Ketahui dengan cepat tentang penukaran nilai ASCII dalam PHP Ketahui dengan cepat tentang penukaran nilai ASCII dalam PHP Mar 28, 2024 pm 06:42 PM

Penukaran nilai ASCII dalam PHP adalah masalah yang sering dihadapi dalam pengaturcaraan. ASCII (American Standard Code for Information Interchange) ialah sistem pengekodan standard untuk menukar aksara kepada nombor. Dalam PHP, kita selalunya perlu menukar antara aksara dan nombor melalui kod ASCII. Artikel ini akan memperkenalkan cara menukar nilai ASCII dalam PHP dan memberikan contoh kod tertentu. 1. Tukar aksara

See all articles