本文主要是介绍UVA10420-战利品列表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
做此题时,我觉得没什么难度,只要案例过了,我的程序就过了。当然。我不是一遍写成功的,这次的耗时点还是循环,
循环里的mystrcmp()没处理好,还有就是count是从1开始的,
#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
using namespace std;
int fin (string & s)
{for(int i = 0; i < s.size(); i++){if(s[i] == ' ') return i;}
}
int mystrcmp(string &a, string &b,int len)
{for(int i = 0; i < len; i++){//cout<<a[i]<<b[i]<<endl;if(a[i] != b[i])return 1;}return 0;
}
int com(const void *a,const void *b)
{string *c = (string*)a;string *d = (string*)b;return strcmp(c->data(),d->data());
}
int main ()
{int n ;cin>>n;cin.get();string s[n];for(int i = 0; i < n; i++){getline(cin,s[i]);//cout<<s[i]<<endl;}qsort(s,n,sizeof(s[0]),com);int len = fin(s[0]);int count = 1;for(int i = 0; i < n; i++){if(len == fin(s[i])&&i&&!mystrcmp(s[i],s[i-1],len)){//if(i&&)count++;}else{if(i){for(int k = 0 ; k < len; k ++){cout<<s[i-1][k];}cout<<" "<<count<<endl;}len = fin(s[i]);count = 1;}//cout<<" **"<<endl;if(i== n-1){for(int k = 0 ; k < len; k ++){cout<<s[i-1][k];}cout<<" "<<count<<endl;}}return 0;
}
这篇关于UVA10420-战利品列表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!