Rumah >pembangunan bahagian belakang >C++ >Semak sama ada rentetan mewakili nombor perenambelasan

Semak sama ada rentetan mewakili nombor perenambelasan

PHPz
PHPzke hadapan
2023-09-25 11:45:041241semak imbas

Semak sama ada rentetan mewakili nombor perenambelasan

Dalam sains komputer, perenambelasan ialah sistem nombor berasaskan 16. Ia menggunakan 16 simbol berbeza, termasuk sepuluh digit perpuluhan 0 hingga 9 dan enam huruf A, B, C, D, E dan F untuk mewakili nombor dari 0 hingga 15. Dalam artikel ini, kita akan membincangkan cara menyemak sama ada rentetan mewakili nombor perenambelasan.

Pernyataan Masalah

Diberi rentetan, tugasnya adalah untuk menyemak sama ada ia mewakili nombor perenambelasan yang sah.

Kaedah

Kita boleh menyelesaikan masalah ini dengan mengulangi aksara dalam rentetan dan menyemak sama ada ia tergolong dalam set aksara heks yang sah. Aksara heksadesimal yang sah ialah nombor dari 0 hingga 9 dan huruf dari A hingga F (tanpa mengira huruf besar atau huruf kecil). Jika semua aksara dalam rentetan tergolong dalam set aksara ini, maka rentetan itu mewakili nombor perenambelasan yang sah.

Contoh

Ini ialah pelaksanaan kod C++ bagi kaedah di atas:

#include <iostream>
#include <string>

using namespace std;

bool isHexadecimal(string s) {
   int n = s.length();
   
   for (int i = 0; i < n; i++) {
      if (!isxdigit(s[i])) {
         return false;
      }
   }
   
   return true;
}

int main() {
   string s1 = "ABCD1234";
   string s2 = "12G4F5";
   
   if (isHexadecimal(s1)) {
      cout << s1 << " represents a valid hexadecimal number." << endl;
   } else {
      cout << s1 << " does not represent a valid hexadecimal number." << endl;
   }
   
   if (isHexadecimal(s2)) {
      cout << s2 << " represents a valid hexadecimal number." << endl;
   } else {
      cout << s2 << " does not represent a valid hexadecimal number." << endl;
   }
   
   return 0;
}

Output

Menjalankan kod di atas akan mengeluarkan

ABCD1234 represents a valid hexadecimal number.
12G4F5 does not represent a valid hexadecimal number.

Kerumitan masa

Kerumitan masa penyelesaian ialah O(N), dengan N ialah panjang rentetan.

Kerumitan ruang

Kerumitan ruang penyelesaian ialah O(1).

Dalam kod di atas, kami telah mentakrifkan fungsi ialahHeksadesimal yang menerima rentetan sebagai input dan mengembalikan benar jika rentetan itu mewakili nombor perenambelasan yang sah, jika tidak ia mengembalikan palsu. Kami menggunakan fungsi isxdigit untuk menyemak sama ada setiap aksara dalam rentetan tergolong dalam set aksara heksadesimal yang sah.

Kes Ujian

Mari kita ambil dua rentetan s1 = "ABCD1234" dan s2 = "12G4F5". Rentetan s1 mewakili nombor heksadesimal yang sah kerana semua aksara dalam rentetan tergolong dalam set aksara perenambelasan yang sah. Sebaliknya, rentetan s2 tidak mewakili nombor perenambelasan yang sah kerana ia mengandungi aksara 'G' yang bukan aksara perenambelasan yang sah.

Kesimpulan

Ringkasnya, kita boleh menyemak dengan mudah sama ada rentetan mewakili nombor perenambelasan yang sah dengan mengulangi aksara rentetan dan menyemak sama ada rentetan tersebut tergolong dalam set aksara heks yang sah.

Atas ialah kandungan terperinci Semak sama ada rentetan mewakili nombor perenambelasan. 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