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

C++ 프로그램에서 두 문자열의 흔하지 않은 문자 찾기

<시간/>

이 튜토리얼에서는 주어진 두 문자열에서 고유한 문자를 찾는 방법을 배울 것입니다. 예를 들어 보겠습니다.

입력

string_one = "tutorialspoint"
string_two = "tutorialsworld"

출력

d n p w

우리는 해싱을 사용하여 문제를 해결할 것입니다. 두 개의 중첩 루프를 작성하는 것보다 더 효율적입니다.

프로그램을 해결하는 단계를 살펴보겠습니다.

  • 임의의 값으로 두 문자열을 초기화합니다.

  • 지도를 map 문자로 초기화합니다.

  • 첫 번째 문자열을 반복하고 값이 1인 맵에 각 문자를 삽입합니다.

  • 이제 두 번째 문자열을 반복합니다.

    • 캐릭터가 이미 존재하는지 확인하세요.

    • 있는 경우 0을 할당합니다.

    • 존재하지 않으면 값이 1인 문자를 삽입하십시오.

  • 지도를 반복하고 값이 1인 문자를 인쇄합니다.

예시

아래 코드를 참조하세요.

#include <bits/stdc++.h>
#include <map>
using namespace std;
void findDistinctCharacters(string one, string two){
   // initializing char presence in string
   map<char, int> chars;
   // iterating over the first string
   for (int i = 0; i < one.size(); ++i){
      // inserting every character into map
      chars.insert({one[i], 1});
   }
   // iterating over the second string
   for (int i = 0; i < two.size(); ++i){
      // checking whether the current char in string or not
      if (chars.count(two[i])) {
         // assigning 0 for common chars
         chars.find(two[i])->second = 0;
      }
      else {
         // insering new chars
         chars.insert({two[i], 1});
      }
   }
   // printing the distinct characters
   for (auto item: chars){
      // checking the presence
      if (item.second == 1) {
         // printing the distinct char
         cout << item.first << " ";
      }
   }
}
int main(){
   string one = "tutorialspoint";
   string two = "tutorialsworld";
   findDistinctCharacters(one, two);
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

d n p w

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.