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++.
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.
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.
#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; }
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.
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!