1170-比较最小字符出现的次数

1、Vector容器的用法(STL数据库重要成员)

  • 定义:vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。
  • vector<数据类型>变量名:vector<int>a
  • 包含头文件:#include<vector>
  • 基本指令:
    • a.empty():判断是否为空
    • a.size():求容器的大小
    • a.push_back(元素):把元素插入到容器a的末端
    • a.pop_back():删除最后一个元素

2、使用冒泡排序

3、本题思路

  • 先判断输入的容器里内容是否为空
  • 遍历word组所有的字符串,求出每一个字符串最小字符(利用冒泡排序找出最小元素)出现的次数,存入一个容器b中
  • 遍历queries中的字符串,求第一个字符串中最小字符出现的次数分别和b中的数值比较,比较结果存到answer里面,循环遍历
  • 输出answer

4、结果

  • 时间长,因为发现有的语句可以重复调用,但我重新写了一遍,导致语句很多

5、代码

 

 1 class Solution {
 2 public:
 3     vector<int> numSmallerByFrequency(vector<string>& queries, vector<string>& words)
 4     {
 5         vector<int>answer;
 6         vector<int>wordanswer;
 7         vector<int>queriesanswer;
 8         if(!words.empty()&&!queries.empty())
 9         {
10             for(int i=0;i<words.size();i++)
11             {//遍历每一个word字符串组中的每一个字符串
12                 string str;
13                 str=words[i];
14                 int n=0;//代表最小字符出现的次数
15                 if(str.size()==1) n=n+1;
16                 else{
17                 for(int j=0;j<str.size()-1;j++)
18                 {//遍历字符串中的每一个字符,利用冒泡排序找到最小字符
19                     if(str[j]<str[j+1])
20                     {
21                         char temp;
22                         temp=str[j];
23                         str[j]=str[j+1];
24                         str[j+1]=temp;
25                     }
26                 }
27                     char chartemp;
28                     chartemp=str[str.size()-1];//获取最小字符
29                     for(int k=0;k<str.size();k++){//获取最小字符出现的次数
30                         if(str[k]==chartemp) n++;
31                     }
32                 }
33                 wordanswer.push_back(n);
34             }
35             for(int i=0;i<queries.size();i++)
36             {
37                 int m=0;//代表最小字符出现的次数
38                 string str=queries[i];
39              
40                 if(str.size()==1) m=m+1;
41                 else
42                 {
43                 for(int j=0;j<str.size()-1;j++)
44                 {//遍历字符串中的每一个字符,利用冒泡排序找到最小字符
45                     if(str[j]<str[j+1])
46                     {
47                         char temp;
48                         temp=str[j];
49                         str[j]=str[j+1];
50                         str[j+1]=temp;
51                     }
52                 }
53                     char chartemp;
54                     chartemp=str[str.size()-1];//获取最小字符
55                     for(int k=0;k<str.size();k++)
56                     {//获取最小字符出现的次数
57                         if(str[k]==chartemp) m++;
58             
59                      }
60                  }
61                  int time=0;
62                 for(int i=0;i<wordanswer.size();i++){
63                     if(wordanswer[i]>m) time=time+1;
64                 }
65                 answer.push_back(time);
66         }
67     }
68         return answer;
69     }
70 };

 2019-09-26

6、更新,,,

重新看之前写的程序,确实冒泡排序找最小字符的时候,应该定义一个函数,然后去调用,这样程序语句就看着少很多了!!!

 1 #include<string>
 2 #include<vector>
 3 using namespace std;
 4 int findminstr(vector<string>s)//利用冒泡排序遍历字符串,遍历一次,最小字符在最右
 5 {
 6     for (int i = 0; i < s.size(); i++)
 7      {//遍历每一个word字符串组中的每一个字符串
 8                string str;
 9                         str = s[i];
10                         int n = 0;//代表最小字符出现的次数
11                       if (str.size() == 1) n = n + 1;
12                        else{
13                            for (int j = 0; j < str.size() - 1; j++)
14                                  {//遍历字符串中的每一个字符,利用冒泡排序找到最小字符
15                                      if (str[j] < str[j + 1])
16                                      {
17                                             char temp;
18                                          temp = str[j];
19                                              str[j] = str[j + 1];
20                                          str[j + 1] = temp;
21                                         }
22                                 }
23                                
24 }
原文地址:https://www.cnblogs.com/hehesunshine/p/11577094.html