Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bilangan butang yang ditekan pada telefon butang tekan

Bilangan butang yang ditekan pada telefon butang tekan

王林
王林ke hadapan
2023-09-07 09:33:15938semak imbas

Bilangan butang yang ditekan pada telefon butang tekan

Pengenalan

String dalam C++ ialah struktur storan terbina dalam yang digunakan untuk mengandungi nombor, aksara dan juga simbol khas. Setiap rentetan dikaitkan dengan saiz yang pasti, ditentukan oleh atribut panjangnya. Secara lalai, kedudukan rentetan bermula pada 0. Aksara dalam rentetan boleh melakukan pelbagai jenis operasi -

  • Aksara baharu boleh ditambah pada hujung rentetan.

  • Aksara boleh ditambah pada rentetan beberapa kali.

Dalam artikel ini, kami akan membangunkan kod yang mengambil rentetan sebagai input dan mengira bilangan kali kekunci mesti ditekan untuk menaip rentetan itu pada skrin mudah alih papan kekunci. Tatasusunan input juga disediakan yang menunjukkan bilangan ketukan kekunci untuk mana-mana aksara tertentu. Mari lihat contoh berikut untuk memahami topik ini dengan lebih baik -

Contoh

Contoh 1 - str - "abc"

Output - 6

Sebagai contoh, dalam rentetan contoh di bawah, jumlah bilangan ketukan kekunci adalah bersamaan dengan 1+2+3 = 6.

Dalam artikel ini, kami akan mencipta penyelesaian yang mengekstrak satu aksara daripada rentetan pada satu masa dan kemudian mengekstrak ketukan kekunci yang sepadan daripada tatasusunan input. Setiap kali kiraan ditambah kepada pembolehubah jumlah.

tatabahasa

str.length()

Panjang()

Kaedah length() dalam C++ digunakan untuk mengira bilangan aksara alfanumerik yang terkandung dalam rentetan. Ia boleh digunakan untuk mengira aksara abjad angka, ruang dan nombor.

Algoritma

  • Terima rentetan input str

  • Kaunter yang menyimpan bilangan kali setiap aksara perlu ditekan untuk menjana rentetan.

  • Gunakan kaedah length() untuk mengira panjang rentetan dan simpan dalam pembolehubah len

  • Ekstrak watak pada kedudukan ke-i setiap kali, ch.

  • Kaunter ditambah dengan bilangan jawatan yang disebut dalam arr.

  • Lakukan gelung menurun yang dimulakan dengan nilai pembilang untuk menambahkan aksara yang diekstrak pada rentetan output.

  • Nilai kiraan akan berkurangan setiap kali.

  • Selepas melakukan bilangan lelaran yang diperlukan ke atas aksara, penuding 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;
 
//storing thr reqd number of times a character should be pressed
const int arr[] = { 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4 };

//return the total number of times the button should be pressed
int numkeypresses(string str) {
   //initialising with count 
   int count = 0;
   //count the length of string 
   int len = str.length();
 
   // total key presses
   for (int i = 0; i < len; i++) {
      char ch = str[i];
      count+= arr[ch - 'a'];
   }
    
   cout << "Total number of key presses "<< count;
}
 
// Driver code
int main() {
   //input string
   string str = "tutorials";
   cout <<"Input String : "<< str << "\n" ;
   //calling the function to count the number of times key is pressed 
   numkeypresses(str);
 
   return 0;
}

Output

Input String − tutorials
Total number of key presses 21

KESIMPULAN

Watak dan integer dimanipulasi menggunakan kod ASCII. Penukaran mereka kepada dan daripada satu sama lain boleh disimulasikan dengan mudah, sebagai contoh, integer boleh ditukar kepada setara aksara yang sepadan dengan menolak aksara "a". Ini menghasilkan penukaran kod ASCIInya kepada dan dari satu sama lain, yang boleh digunakan untuk operasi manipulasi berangka pada rentetan.

Atas ialah kandungan terperinci Bilangan butang yang ditekan pada telefon butang tekan. 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