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

แบบสอบถามสำหรับอักขระในสตริงซ้ำใน C++


ในปัญหานี้ เราได้รับข้อความค้นหาสตริง str และ Q ซึ่งประกอบด้วย twovalues ​​a และ b งานของเราคือสร้างโปรแกรมเพื่อแก้แบบสอบถามสำหรับอักขระในสตริงที่ซ้ำกันใน C++

คำอธิบายปัญหา

ในการแก้ปัญหาแต่ละคำถาม เราต้องตรวจสอบว่าอักขระที่ดัชนี a และ b เหมือนกันหรือไม่ และคืนค่าตามนั้น

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

ป้อนข้อมูล :str =“tutorialspoint”

Q =2

ข้อความค้นหา ={{0, 2}, $4, 7}}

ผลผลิต :ซ้ำแล้วซ้ำเล่า

ไม่ซ้ำ

คำอธิบาย

สำหรับคำถามที่ 1 , อักขระที่ดัชนี 0 คือ t และอักขระที่ดัชนี 2 คือ t ทั้งสองเป็นอักขระเดียวกัน

สำหรับคำถามที่ 1 อักขระที่ดัชนี 4 คือ r และอักขระที่ดัชนี 7 คือ l ทั้งสองไม่ใช่อักขระเดียวกัน

แนวทางการแก้ปัญหา

ในการแก้ปัญหา เราจะตรวจสอบความเท่าเทียมกันขององค์ประกอบที่ดัชนี a และ b หากดัชนีใด ๆ มากกว่าความยาวของสตริง be จะหาค่าของ (ดัชนี% len) เพื่อรับดัชนีของตัวละคร และผู้ใช้ดัชนีใหม่สำหรับการเปรียบเทียบ

ตัวอย่าง

#include <iostream>
#include <string>
using namespace std;
bool isrepeated(string str, int len, int a, int b){
   if(a > len)
      a %= len;
   if(b > len)
      b %= len;
   if(str[a] == str[b])
      return true;
   else
     return false;
}
int main(){
   string str = "tutorialspoint";
   int len = str.length();
   int Q = 3;
   int query[Q][2] = {{0, 2}, {3, 32}, {5, 18}};
   for(int i = 0; i < Q; i++){
      if(isrepeated(str, len, query[i][0], query[i][1]))
         cout<<"Character is repeated in both the index values"<<endl;
      else
         cout<<"Character is not repeated in both the index values"<<endl;
   }
   return 0;
}

ผลลัพธ์

Character is repeated in both the index values
Character is not repeated in both the index values
Character is not repeated in both the index values