> 백엔드 개발 > C++ > 본문

주어진 두 문장에서 반복되지 않는 모든 단어를 인쇄합니다.

王林
풀어 주다: 2023-09-15 19:01:03
앞으로
633명이 탐색했습니다.

주어진 두 문장에서 반복되지 않는 모든 단어를 인쇄합니다.

이 튜토리얼에서는 주어진 두 문장에서 반복되지 않는 모든 단어를 식별하고 인쇄합니다. 반복되지 않는 단어는 두 문장에서 한 번만 나타나는 단어, 즉 다른 문장에서는 반복해서 나타나지 않는 단어를 말합니다. 이 작업에는 입력 문장을 분석하고, 개별 단어를 식별하고, 두 문장을 비교하여 한 번만 나타나는 단어를 찾는 작업이 포함됩니다. 출력은 이러한 모든 단어의 목록이어야 합니다. 이 작업은 루프, 배열 또는 사전 사용과 같은 다양한 프로그래밍 방법을 통해 수행할 수 있습니다.

방법

다음은 주어진 두 문장에서 반복되지 않는 모든 단어를 인쇄하는 두 가지 방법입니다−

방법 1: 사전을 사용하세요

방법 2: 컬렉션 사용

방법 1: 사전을 사용하세요

사전을 사용하여 두 문구에 각 단어가 나타나는 횟수를 세어보세요. 그런 다음 사전을 찾아 한 번만 나타나는 모든 단어를 인쇄할 수 있습니다. C++의 사전 기능은 일반적으로 지정된 두 문장의 모든 고유 단어를 출력하는 데 사용됩니다. 이 방법에는 사전 또는 해시 테이블 데이터 구조를 사용하여 각 단어의 빈도를 두 문구에 저장하는 작업이 포함됩니다. 그런 다음 사전을 반복하여 한 번만 나타나는 용어를 인쇄할 수 있습니다.

문법

다음은 C++의 사전 메서드를 사용하여 주어진 두 문장에서 중복되지 않는 모든 단어를 인쇄하는 실제 코드가 없는 구문입니다. -

  • 단어 빈도를 저장하는 사전을 선언하세요

으아아아
  • 두 문장을 문자열로 입력하세요

으아아아
  • 문장을 단어로 나누고 사전에 삽입하세요

으아아아
  • 사전을 반복하면서 고유한 단어를 인쇄하세요

으아아아

알고리즘

C++에서는 사전 방법을 사용하여 지정된 두 문장의 모든 고유 항목을 단계별로 인쇄하는 트릭입니다. -

1단계 - 문장이 포함된 두 개의 문자열 s1과 s2를 만듭니다.

2단계 - 문장의 각 단어의 빈도를 기록하기 위해 순서가 지정되지 않은 빈 맵 문자열 int>를 선언합니다.

3단계 − C++의 문자열 스트림 클래스를 사용하여 두 구문을 구문 분석하여 단어를 추출합니다.

4단계 - 추출된 각 단어에 대해 사전에 나타나는지 확인합니다. 그렇다면 빈도를 1만큼 늘립니다. 그렇지 않으면 빈도 1로 사전에 추가하십시오.

5단계 - 두 문장을 모두 처리한 후 사전을 반복하고 빈도가 1인 모든 용어를 표시합니다. 두 문장에서 반복되지 않는 단어입니다.

6단계 − 이 방법의 시간 복잡도는 O(n)입니다.

예제 1

의 중국어 번역은 다음과 같습니다.

예제 1

이 코드는 순서가 지정되지 않은 맵을 사용하여 결합된 구문에 있는 각 단어의 빈도를 저장합니다. 그런 다음 지도를 반복하면서 반복되지 않는 단어의 벡터에 한 번만 나타나는 각 단어를 추가합니다. 마지막으로, 중복되지 않은 단어를 공개합니다. 이 예는 두 문장이 사용자가 입력하는 것이 아니라 프로그램에 하드 코딩되어 있음을 의미합니다.

으아아아

출력

으아아아

방법 2: 컬렉션 사용

이 전략에는 집합을 사용하여 두 구문에서 한 번만 나타나는 용어를 찾는 것이 포함됩니다. 각 구문에 대한 용어 집합을 만든 다음 이러한 집합의 교차점을 식별할 수 있습니다. 마지막으로 교차점을 반복하여 한 번만 나타나는 모든 항목을 출력할 수 있습니다.

컬렉션은 다양한 요소를 정렬된 순서로 보관하는 연관 컨테이너입니다. 두 구문의 용어를 컬렉션에 삽입할 수 있으며 중복된 용어는 자동으로 제거됩니다.

문법

당연하죠! 다음은 주어진 두 문장에서 반복되지 않는 모든 단어를 인쇄하기 위해 Python에서 사용할 수 있는 구문입니다 −

  • 두 문장을 문자열로 정의

으아아아
  • 각 문장을 단어 목록으로 분할하세요

으아아아
  • 이 두 단어 목록에서 세트를 만듭니다

으아아아
  • 세트의 교차를 통해 독특한 단어를 찾아보세요

으아아아
  • 고유한 단어를 인쇄하세요

으아아아

알고리즘

C++의 집계 함수를 사용하여 주어진 두 문장에서 중복되지 않는 모든 단어를 출력하려면 아래 지침을 따르세요. -

1단계 - 두 문장을 저장할 문자열 변수 두 개를 만듭니다.

2단계 - 문자열 스트림 라이브러리를 사용하여 각 문장을 개별 단어로 분할하고 두 개의 개별 배열에 저장합니다.

3단계 - 각 문장마다 하나씩 두 개의 세트를 만들어 고유한 단어를 저장하세요.

4단계 - 각 단어 배열을 반복하고 각 단어를 올바른 세트에 삽입합니다.

5단계 - 각 세트를 반복하면서 중복되지 않는 단어를 인쇄하세요.

예 2

의 중국어 번역은 다음과 같습니다.

예 2

이 코드에서는 문자열 스트림 라이브러리를 사용하여 각 문장을 별도의 단어로 분할합니다. 그런 다음 UniqueWords1 및 UniqueWords2라는 두 개의 컬렉션을 사용하여 각 문장의 고유한 단어를 저장합니다. 마지막으로 각 세트를 반복하여 중복되지 않은 단어를 인쇄합니다.

#include <iostream>
#include <string>
#include <sstream>
#include <set>

using namespace std;

int main() {
   string sentence1 = "This is the first sentence.";
   string sentence2 = "This is the second sentence.";
   string word;
   stringstream ss1(sentence1);
   stringstream ss2(sentence2);
   set<string> uniqueWords1;
   set<string> uniqueWords2;

   while (ss1 >> word) {
      uniqueWords1.insert(word);
   }

   while (ss2 >> word) {
      uniqueWords2.insert(word);
   }

   cout << "Non-repeating words in sentence 1:" << endl;
   for (const auto& w : uniqueWords1) {
      if (uniqueWords2.find(w) == uniqueWords2.end()) {
         cout << w << " ";
      }
   }
   cout << endl;

   cout << "Non-repeating words in sentence 2:" << endl;
   for (const auto& w : uniqueWords2) {
      if (uniqueWords1.find(w) == uniqueWords1.end()) {
         cout << w << " ";
      }
   }
   cout << endl;

   return 0;
}
로그인 후 복사

输出

Non-repeating words in sentence 1:
first 
Non-repeating words in sentence 2:
second
로그인 후 복사

结论

总之,从两个提供的句子中打印所有非重复单词的任务是通过使用各种编程方法来实现的,例如将句子分解为单个单词,利用字典来量化每个单词的频率,以及过滤掉非重复单词。生成的非重复单词集合可以报告给控制台或保存在列表或数组中以供进一步使用。这项工作对于基本的编程文本操作和数据结构操作很有帮助。

위 내용은 주어진 두 문장에서 반복되지 않는 모든 단어를 인쇄합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!