Rumah > pembangunan bahagian belakang > C++ > Sulitkan rentetan dengan mengulangi aksara ke-i kali

Sulitkan rentetan dengan mengulangi aksara ke-i kali

王林
Lepaskan: 2023-08-31 17:29:19
ke hadapan
1174 orang telah melayarinya

Sulitkan rentetan dengan mengulangi aksara ke-i kali

Pengenalan

Rentetan C++ ialah urutan tetap aksara alfanumerik. Ia adalah aliran aksara yang berterusan, yang boleh menjadi nombor, aksara atau bahkan simbol khas. Setiap rentetan mempunyai panjang tertentu. Akses kedudukan aksara bermula dari 0.

String boleh mengandungi aksara unik atau aksara berulang yang digabungkan bersama. Mereka boleh melakukan pelbagai operasi dan operasi siri.

Dalam artikel ini, kami akan membangunkan kod yang mengambil rentetan sebagai input dan memaparkan rentetan yang disulitkan di mana aksara pertama diulang 1 kali dan aksara kedua diulang 2 kali. Ulangi proses ini sehingga panjang rentetan dicapai. Mari lihat contoh di bawah untuk memahami topik ini dengan lebih baik -

Contoh

Contoh 1 - str - "g@m$"

Output - g@@mmm$$$$

Sebagai contoh, contoh rentetan di bawah juga mengandungi aksara khas yang diulang berdasarkan kedudukan aksara dalam rentetan.

Dalam artikel ini, kami akan mencipta penyelesaian untuk mengira bilangan kali watak pada kedudukan tertentu harus diulang. Aksara yang diekstrak kemudiannya dilampirkan pada rentetan output yang terhasil sehingga kiraan habis.

Tatabahasa

str.length()
Salin selepas log masuk

Panjang()

Saiz rentetan boleh ditangkap melalui kaedah length(), yang digunakan untuk mengembalikan aksara alfanumerik dan simbol khas yang terkandung dalam rentetan

Algoritma

  • Menerima str rentetan input sebagai input

  • Kaunter, cnt digunakan untuk menyimpan bilangan kali setiap aksara perlu diulang. Nilai awalnya ialah 0.

  • Panjang rentetan dikira menggunakan kaedah length() dan disimpan dalam pembolehubah bernama len

  • Ekstrak watak pada kedudukan ke-i setiap kali.

  • Cnt kaunter dikira dengan meningkatkan kedudukan i sebanyak 1.

  • Laksanakan gelung menurun yang dimulakan dengan nilai pembilang, tambahkan aksara yang diekstrak pada rentetan output res

  • Nilai kaunter menurun setiap kali

  • Selepas melakukan bilangan lelaran yang diperlukan pada aksara, penunjuk akan beralih ke aksara seterusnya

Contoh

Coretan kod C++ berikut digunakan untuk mencipta rentetan yang disulitkan berdasarkan rentetan contoh input yang diberikan -

//including the required libraries
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the encrypted string
string encrypt(string str) {
   //counter to store the number of times a character is repeated
   int cnt = 0;
   //storing the encrypted string 
   string res = "";
   //computing the length of the string 
   int len = str.length();
 
   for(int i =0 ; i<len ; ) {
 
      //getting the count of the number of times the character will be repeated 
       cnt = i + 1;
 
      //repeating the current character
       while (cnt){
          //extracting the character at ith index
          char ch = str[i];
          //adding the character to output string 
          res += ch;
          //decrementing the count
          cnt--;
      }
      i++;
   }
 
   cout << "Encrypted string "<< res;
}
 
int main() {
   //taking a input string 
   string str = "heyy";
   cout << "Input string "<< str <<"\n";;
   //creating an encrypted string 
   encrypt(str);
 
   return 0;
}
Salin selepas log masuk

Output

Input string heyy
Encrypted string heeyyyyyyy
Salin selepas log masuk

Kesimpulan

Kedudukan aksara dalam rentetan C++ bermula dari indeks ke-0 secara lalai. Rentetan ialah struktur storan panjang dinamik di mana aksara boleh ditambah dengan mudah dalam beberapa kali. Dalam C++, penggabungan rentetan boleh dilakukan dengan mudah menggunakan operator +. Setiap kali aksara ditambah, panjang rentetan bertambah 1.

Atas ialah kandungan terperinci Sulitkan rentetan dengan mengulangi aksara ke-i kali. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan