Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 반복되는 문자열의 문자 쿼리

<시간/>

이 문제에서는 두 개의 값과 b로 구성된 문자열 str과 Q 쿼리가 제공됩니다. 우리의 임무는 C++에서 반복되는 문자열의 쿼리를 해결하는 프로그램을 만드는 것입니다.

문제 설명

각각의 쿼리를 풀기 위해서는 index와 b의 문자가 같은지 확인하고 그에 따라 값을 반환해야 합니다.

문제를 이해하기 위해 예를 들어보겠습니다.

입력 :str ="튜토리얼 포인트"

Q =2

쿼리 ={{0, 2}, {4, 7}}

출력 :반복

반복되지 않음

설명

쿼리 1의 경우 , 인덱스 0의 문자는 t, 인덱스 2의 문자는 t입니다. 둘 다 같은 문자입니다.

쿼리 1의 경우 인덱스 4의 문자는 r이고 인덱스 7의 문자는 l입니다. 둘 다 같은 캐릭터가 아닙니다.

솔루션 접근 방식

문제를 해결하기 위해 인덱스와 b에 있는 요소의 동등성을 간단히 확인합니다. 인덱스가 문자열의 길이보다 큰 경우 be는 (index%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