Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมค้นหาอักขระ kth หลังจากถอดรหัสสตริงใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาอักขระ kth หลังจากถอดรหัสสตริง

สำหรับสิ่งนี้ เราจะจัดเตรียมสตริงที่จะประกอบด้วยอักขระ ตัวเลข และจำนวนเต็ม K หน้าที่ของเราคือถอดรหัสสตริงที่กำหนดและค้นหาอักขระที่ตำแหน่ง Kth

ตัวอย่าง

#include <cstdlib>
#include <iostream>
using namespace std;
//finding decrypted Kth character
char findKthChar(string s, int k) {
   int len = s.length();
   int i = 0;
   int total_len = 0;
   while (i < len) {
      if (isalpha(s[i])) {
         total_len++;
         if (total_len == k)
            return s[i];
         i++;
      }
      else {
         int n = 0;
         while (i < len && !isalpha(s[i])) {
            n = n * 10 + (s[i] - '0');
            i++;
         }
         int next_total_len = total_len * n;
         if (k <= next_total_len) {
            int pos = k % total_len;
            if (!pos) {
               pos = total_len;
            }
            return findKthChar(s, pos);
         }
         else {
            total_len = next_total_len;
         }
      }
   }
   return -1;
}
int main() {
   string s = "ab2c3";
   int k = 5;
   cout << findKthChar(s, k);
   return 0;
}

ผลลัพธ์

c