Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menyemak sama ada aksara rentetan boleh menjadi tidak berkurangan dengan menggantikan '_'

Menyemak sama ada aksara rentetan boleh menjadi tidak berkurangan dengan menggantikan '_'

PHPz
PHPzke hadapan
2023-09-13 20:41:04458semak imbas

Menyemak sama ada aksara rentetan boleh menjadi tidak berkurangan dengan menggantikan _

Dalam artikel ini, kita akan menyelidiki masalah menarik dalam bidang manipulasi rentetan: bagaimana untuk menyemak sama ada aksara rentetan yang diberikan boleh ditukar kepada tertib tidak menurun dengan menggantikan aksara "?" Soalan ini memberi anda peluang yang baik untuk mempraktikkan kemahiran manipulasi rentetan dan semakan keadaan anda dalam C++.

Pernyataan Masalah

Diberi rentetan yang terdiri daripada aksara abjad dan tanda soal (?), tentukan sama ada aksara itu boleh dibuat tidak berkurang dengan menggantikan '?'.

Syarat tidak menurun bermakna bahawa untuk setiap dua aksara bersebelahan dalam rentetan, nilai ASCII aksara kedua tidak kurang daripada nilai ASCII yang pertama.

Kaedah

Kami akan menggunakan kaedah mudah untuk menyelesaikan masalah ini −

  • Lelaran melalui rentetan dari kiri ke kanan.

  • Jika '?' ditemui, gantikan dengan watak yang datang sebelum itu (melainkan ia adalah watak pertama, dalam kes ini gantikan dengan 'a').

  • Akhir sekali, semak sama ada rentetan yang terhasil tidak berkurangan.

Contoh

#include<bits/stdc++.h>
using namespace std;

bool checkNonDecreasing(string s) {
   int n = s.size();
   if (s[0] == '?') s[0] = 'a';
   for (int i = 1; i < n; i++) {
      if (s[i] == '?') s[i] = s[i-1];
      if (s[i] < s[i-1]) return false;
   }
   return true;
}
int main() {
   string s = "ac?b";
   bool result = checkNonDecreasing(s);
   if(result)
      cout << "Yes, the string can be made non-decreasing by replacing '?'s.\n";
   else
      cout << "No, the string cannot be made non-decreasing by replacing '?'s.\n";
   return 0;
}

Output

No, the string cannot be made non-decreasing by replacing '?'s.

Fungsi checkNonDecreasing mengambil sebagai input rentetan s dan mengembalikan nilai boolean yang menunjukkan sama ada aksara rentetan itu boleh dibuat tidak berkurangan dengan menggantikan '?'s.

Dalam kes ujian ini, rentetan input ialah "ac?b". Fungsi checkNonDecreasing dipanggil dengan rentetan ini sebagai argumen, dan hasilnya ialah nilai boolean yang dicetak.

Kesimpulan

Menyemak sama ada aksara dalam rentetan boleh dibuat tidak berkurangan dengan menggantikan "?" ialah soalan yang menguji pemahaman anda tentang operasi rentetan dan nilai ASCII. Dengan mempraktikkan soalan seperti ini, anda boleh mengukuhkan keupayaan anda untuk mengendalikan rentetan dalam C++.

Atas ialah kandungan terperinci Menyemak sama ada aksara rentetan boleh menjadi tidak berkurangan dengan menggantikan '_'. 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