原题链接:蓝桥杯算法提高VIP-不同单词个数统计
解题思路:我先用得到getline保存字符串,然后分割字符串保留单词到一个字符串数组,同时记录单词个数,接下来去一个单词一个单词对比,如果相同,单词数目减一
注意事项:分割字符串的时候注意长度
参考代码:
#include<iostream> #include<string> #include <algorithm> using namespace std; string data[100];//单词保存到data里面 bool vis[100]; int main() { string s; getline(cin,s); int ls = s.length(),i = 0,pos = 0,j = 0; int sum = 0; //分割单词统计个数(其实多少个空格就行了) for(i = 0;i<ls;i++) { if(s[i] == ' ') { string s2 = s.substr(pos,i-pos); pos = i+1; data[j++] = s2; sum++; // cout<<s2<<endl; } if(i == ls-1) { string s2 = s.substr(pos,i-pos+1); sum++; data[j++] = s2; // cout<<s.substr(pos,i-pos+1); } } int num = sum; for(i = 0;i<sum;i++) { for(j = i+1;j<sum;j++) { //如果单词比较过了,下次就不用再比了 if(vis[j] == 0) { if(data[i] == data[j]) { vis[j] = 1; num--; } } } } cout<<num<<endl; //cout<<s<<endl; return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复