1002.查找常用字符(给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。)

1002.查找常用字符


给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。

你可以按任意顺序返回答案。

示例 1:
输入:[“bella”,“label”,“roller”]
输出:[“e”,“l”,“l”]

示例 2:
输入:[“cool”,“lock”,“cook”]
输出:[“c”,“o”]

提示:

1 <= A.length <= 100
1 <= A[i].length <= 100
A[i][j] 是小写字母

可能是因为太简单了吧,多以提交的人少了不少。。。
但是,在做题的过程中,也遇到了一点麻烦。
在字符转字符串的时候,找不到合适的方法,就停滞了好长时间。
不过找到了好方法:

char c = 'a';
char c2[2] = {c,0};//定义一个字符数组,即传统的字符串,使其值为单个字符加上字符串结束符\0。
string s;//将字符赋值给string对象。
s = c2;

还看到了另一种好方法:

char ch = 'X';
string s="a" ;//初始化一个单元。这里的"a"只是要分配一个有效的空间,具体值并不重要。"b", "C", " "均是同样的效果。
s[0] = ch;//将需要的字符替换进string对象。

这题的思路还是挺简单的,把数组中的第一个元素但拿出来,然后把第一个元素的每个字符拿出来与其他元素的字符比较,如果相等,就标记该元素。如果除了第一个元素,其他所有的元素都被标记,则这个字符是常用字符。
还要把这个字符从元素中删除,避免再次比较。
代码如下:

class Solution {
public:
    vector<string> commonChars(vector<string>& A) {
        string temp = A[0];
        bool eq[A.size()];
        vector<string> res;
        int n = 0;
        char c;
        for(int i=0;i<temp.length();i++){
            c = temp[i];
            for(int i=1;i<A.size();i++){
                eq[i] = false;
            }
            for(int j=1;j<A.size();j++){
                for(int k=0;k<A[j].length();k++){
                    if(c == A[j][k]){
                        eq[j] = true;
                    }
                }
            }
            int k=0;
            for(int i=1;i<A.size();i++){
               if(eq[i] == false){
                   k=1;break;
               }
            }
            if(k == 0){
                char s[2] = {c,0};
                string s2 = s;
                res.push_back(s2);
                n++;
                for(int j=1;j<A.size();j++){
                    for(int k=0;k<A[j].length();k++){
                        if(c == A[j][k]){
                            A[j][k] = '0';break;
                        }
                    }
                }
            }
        }
        return res;
    }
};

我也不想解释了,挺简单的。而且我的代码也不是最好的。。。
(今天,,现在,,心情不好!!为什么我的票数是最少的,还老有人跑票!!为什么,我做的哪里不好吗??我还不够积极吗??还是长得不行,那我可没办法了,看脸就输了QwQ,我也不想长这些痘,我有什么办法,我已经很努力的祛掉他们了,还要几个月的时间,我就可以恢复到原来的样子!!!但是,最重要的是我的票为什么最少!!我要更努力,让更多的人看到我!)

一个集坚强与自信于一身的菇凉。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡雅的惆怅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值