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

PHPz
Lepaskan: 2023-09-13 20:41:04
ke hadapan
498 orang telah melayarinya

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;
}
Salin selepas log masuk

Output

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

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!

Label berkaitan:
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