acm--统计错误数
题目描述
处理:
1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)
2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)
3.输入的文件可能带路径,记录文件名称不能带路径
一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。
文件路径为windows格式
如:E:\V1R2\product\fpgadrive.c 1325
输出描述:
将所有的记录统计并将结果输出,格式:文件名代码行数数目,一个空格隔开,如: fpgadrive.c 1325 1
结果根据数目从多到少排序,数目相同的情况下,按照输入第一次出现顺序排序。
如果超过8条记录,则只输出前8条记录.
如果文件名的长度超过16个字符,则只输出后16个字符
输入例子:
E:\V1R2\product\fpgadrive.c 1325
输出例子:
fpgadrive.c 1325 1 c++源码
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std; class Error{
public:
string error;
int count;
Error(string e){
error=e;
count=; } void print_err(){
int index = error.find(' ');
if(index>)
cout<<error.substr(index-)<<" "<<count<<endl;
else
cout<<error<<" "<<count<<endl;
}
}; bool comp(Error a,Error b){
return a.count>b.count;
}
/* 测试的样例
E:\V1R2\product\fpgadrivea.c1111 1325
E:\V1R2\product\fpgadrivea.c11112 125
E:\V1R2\product\fpgadrive.c 1325
E:\V1R2\productss\fpgadrive.c 1325
E:\V1R2\product\fpgadrivea.c11112 1335
*/
int main(){ string str;
string file;
vector<Error> vet;
while(getline(cin,str)){
int index = ;
index = str.rfind('\\');
file=str.substr(index+);
Error e= Error(file);
vet.push_back(e);
for(int i=;i<vet.size()-;i++){
if(vet[i].error==file){
vet[i].count++;
vet.pop_back();
break;
} } } stable_sort(vet.begin(),vet.end(),comp);
int i;
for(i=;i<&&i<vet.size();i++){
vet[i].print_err();
}
return ;
}
知识点补充:
1.sort()与stable_sort() 都包含在 algorithm 头文件中,使用时,必须先包含algorithm。
这两个函数的原理都是使用快速排序,时间复杂度在所有的排序中最低,为O(nlog2N);
sort的应用:
sort可以传入两个参数:
sort(a,a+N),其中a是数组,a+N表示数组的结尾,其含义是对a[0] 和a[n]之间的N 个数进行排序(默认从小到大)
stable_sort可以传入三个参数
stable_sort(a,a+N,comp),第三个参数为一个函数。
如果想让算法从大到小排序,可以修改comp函数
bool comp(int a,int b){return a>b;}
stable_sort(a,a+n,comp);
stable_sort的用法和sort一致,区别是stable_sort()函数遇到两个数相等的时候,不对其交换顺序。这个应用在数组里面不受影响,当函数参数传入的是结构体时,会发现两者之间的明显区别。
acm--统计错误数的更多相关文章
- java语言实现对程序设计语言源文件统计字符数、单词数、行数及其他拓展功。
本次作业Github项目地址:https://github.com/YiChenglong2018/WordCount 一.项目简介 本项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行 ...
- OpenJudge就算概论-统计字符数
/*===================================== 统计字符数 总时间限制: 1000ms 内存限制: 65536kB 描述 判断一个由a-z这26个字符组成的字符串中哪个 ...
- 《c程序设计语言》读书笔记--统计 行数、单词数、字符数
#include <stdio.h> int main() { int lin = 0,wor = 0,cha = 0; int flag = 0; int c; while((c = g ...
- 《c程序设计语言》读书笔记--统计换行数,空格数,tab数
#include <stdio.h> int main() { int spa = 0,lin = 0,tab = 0; int c; /* spa代表空格个数,tab代表制表符个数,li ...
- 洛谷 P1308 统计单词数【字符串+模拟】
P1308 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定 ...
- mysql count group by统计条数方法
mysql count group by统计条数方法 mysql 分组之后如何统计记录条数? gourp by 之后的 count,把group by查询结果当成一个表再count一次select c ...
- shell 统计行数
语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...
- linux、WINDOWS命令行下查找和统计行数
linux : 例子: netstat -an | grep TIME_WAIT | wc -l | 管道符 grep 查找命令 wc 统计命令 windows: 例子: netstat -an | ...
- wc 统计行数 字数
Linux统计文件行数 2011-07-17 17:32 by 依水间, 168255 阅读, 4 评论, 收藏, 编辑 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数.字数.行数. ...
- SQL Server遍历所有表统计行数
DECLARE CountTableRecords CURSOR READ_ONLY FOR SELECT sst.name, Schema_name(sst.schema_id) FROM sys. ...
随机推荐
- 使用SQL Server 2000索引视图提高性能
什么是索引视图? 许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的数据的某 ...
- SQL语句创建access表
CREATE TABLE Persons(ID AutoIncrement primary key,Id_P int NOT NULL,LastName varchar(255) NOT NULL,s ...
- 使用VS软件打开网站在浏览器浏览的方法
1.用VS软件打开网站之后,先检查网站是否使用IIS Express开发 2.若不是,则切换成使用IIS Express开发 3.检查项目使用的托管管道模式设置为经典模式了没有 4.最后选择“在浏览器 ...
- PHP导出Excel 数字末尾变0或小数点解决办法
为了管理方便,查阅直观性.很多网站, 或者系统都会自带导出excel或者cvs的功能.但是很多情况下,由于数字超过15位,会被显示成0或者加小数点处理.造成这种情况是由于Excel内 置的数值有效范围 ...
- javaweb 国际化
国际化又称为 i18n:internationalization 软件实现国际化,需具备哪些特征:对于程序中固定使用的文本元素,例如菜单栏.导航条等中使用的文本元素.或错误提示信息,状态信息等,需要根 ...
- php 生成 验证码的例子
/** +---------------------------------------------------------- * 生成随机字符串 CuPlayer.com 酷播 +-------- ...
- ibatis 自动生成map,bean,dao
1.下载 AbatorForEclipse1.1.0 地址:http://download.csdn.net/detail/fym548/9426877 点击Archive按钮选择下载的,然后重启My ...
- Lucene 简单手记http://www.cnblogs.com/hoojo/archive/2012/09/05/2671678.html
什么是全文检索与全文检索系统? 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查 ...
- AS3条件编译
package { import flash.display.Sprite; public class Main extends Sprite { public function Main() { s ...
- maven学习笔记 1
1 概述 1.1 Maven是什么 1.2 为什么要用Maven 2 怎么用Maven 2.1 Maven仓库 2.2 Maven安装 2.3 Eclipse插件 2.4 Maven常用命 ...