이 튜토리얼에서는 주어진 두 문자열에서 고유한 문자를 찾는 방법을 배울 것입니다. 예를 들어 보겠습니다.
입력
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
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.