首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++排序文本

C++排序文本
EN

Stack Overflow用户
提问于 2014-10-24 04:29:27
回答 7查看 440关注 0票数 4

我被问到以下面试问题:

如果有两个字符串输入,那么可以使用什么方法来打印字符串输入所共有的字母。例如,如果用户输入:

工作中 浸透

产出:

好的

解决这个问题的最佳算法是什么?

EN

回答 7

Stack Overflow用户

发布于 2014-10-24 04:34:45

代码语言:javascript
复制
string a = "working";
string b = "soaked";
set<char> setA(a.begin(), a.end());
set<char> setB(b.begin(), b.end());

vector<char> common;
set_intersection(setA.begin(), setA.end(), setB.begin(), setB.end(),
                 back_inserter(common));

copy(common.begin(), common.end(), ostream_iterator<char>(cout));

实际上,如果在交集上不需要进一步处理,可以直接将其发送到cout

代码语言:javascript
复制
set_intersection(setA.begin(), setA.end(), setB.begin(), setB.end(),
                 ostream_iterator<char>(cout));
票数 12
EN

Stack Overflow用户

发布于 2014-10-24 04:44:49

你的描述不是明确的,但我读它的方式,你想知道什么字母是相同的,包括位置。

代码语言:javascript
复制
#include <string>
#include <iostream>
#include <algorithm>

int main() {
  std::string const a = "working";
  std::string const b = "soaked";

  for (int i = 0; i < std::min(a.size(), b.size()); ++i) {
    if (a[i] == b[i]) {
      std::cout << a[i];
    }
  }
}

生产:

代码语言:javascript
复制
ok
票数 4
EN

Stack Overflow用户

发布于 2014-10-24 04:44:24

假设是英文字母。

首先,我使用26的布尔数组大小。

代码语言:javascript
复制
bool array[26];

然后,对索引(letter-'a') (for upper letter-'A')上的每一个字母都要这样做。

然后,对于第二个字符串,执行同样的操作,但这一次是为array[index]==true加油。如果是,则添加到共同列表中;

下面是小的测试代码:

代码语言:javascript
复制
 bool array[26];
  for(bool &arr:array )arr=false;
  char text1[]="working";
  char text2[]="soaked";
  char common[80]="";


  for(char x:text1){
    int m=x-'a'   ;
    if(m>=0 && m<26){
      array[m]   =true;
    }
  }
  int j=0;
  for(char x:text2){
    int m=x-'a'   ;
    if(m>=0 && m<26){
      if(array[m] ==true){
          common[j]=x;
          ++j;
           array[m]=false; //do not check again
      }

    }
  }
  common[j]='\0';
  printf("%s\n",common);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26541491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档