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

Sulitkan rentetan dengan mengulangi aksara ke-i kali

王林
王林ke hadapan
2023-08-31 17:29:191097semak imbas

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()

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;
}

Output

Input string heyy
Encrypted string heeyyyyyyy

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam