PAT(Basic Level) Practice : 1025 反转链表 (25分)
时间:2020-09-20
本文章向大家介绍PAT(Basic Level) Practice : 1025 反转链表 (25分),主要包括PAT(Basic Level) Practice : 1025 反转链表 (25分)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1025 反转链表 (25分)
难点/坑:测试点5,测试点6
测试点6:没有说所有给的测试点都是有效的,从头到尾遍历链表后,要更新节点数目。
比如说:
00100 8 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218
66 33 33
78 78 78
8个节点中只有6个是有效的,最后两个是凑数的。
测试点5:运行超时
把cout换成printf输出
注意:printf输出string
string str="test";
printf("%s\n",str.c_str);
代码
#include <iostream>
#include"stdlib.h"
#include <vector>
#include <cstdio>
//scanf printf防止超时
#include <algorithm>
//vector的sort
#include <sstream>
//转换
using namespace std;
#include<iomanip>
//精度
class element
{
public:
string add;
int data;
string next;
element()
{
add="";
data=0;
next="";
}
};
int main()
{
string first;
int number;
int K;
cin>>first>>number>>K;
vector<element> List;
for(int i=0;i<number;i++)
{
string add;
int data;
string next;
cin>>add>>data>>next;
element temp;
temp.add=add;
temp.data=data;
temp.next=next;
List.push_back(temp);
}
vector<element> right_seq;
string point=first;
while(point!="-1")
{
for(int i=0;i<List.size();i++)
{
if(List[i].add==point)
{
right_seq.push_back(List[i]);
point=List[i].next;
}
}
}
//去除无效节点
number=right_seq.size();
int time=number/K;
vector<element> res;
for(int i=1;i<=time;i++)
{
for(int j=i*K-1;j>=(i-1)*K;j--)
{
element temp;
temp.add=right_seq[j].add;
temp.data=right_seq[j].data;
res.push_back(temp);
}
}
if(number%K>0)
{
for(int i=time*K;i<right_seq.size();i++)
{
element temp;
temp.add=right_seq[i].add;
temp.data=right_seq[i].data;
res.push_back(temp);
}
}
//cout<<"res"<<endl;
for(int i=0;i<res.size()-1;i++)
{
printf("%s %d %s\n",res[i].add.c_str(),res[i].data,res[i+1].add.c_str());
//cout<<res[i].add<<" "<<res[i].data<<" "<<res[i+1].add<<endl;
}
printf("%s %d -1\n",res[number-1].add.c_str(),res[number-1].data);
//cout<<res[number-1].add<<" "<<res[number-1].data<<" -1"<<endl;
return 0;
}
原文地址:https://www.cnblogs.com/zchq/p/13701187.html
- excel导出类
- 我的HTML总结之常用基础便签
- php性能监测模块XHProf
- php dirname(__FILE__) 获取当前文件的绝对路径
- 洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
- 微信公众平台开发接口PHP SDK完整版
- 我的HTML总结之HTML发展史
- BZOJ 4152: [AMPPZ2014]The Captain(最短路)
- js获取div编辑框,textarea,input text的光标位置,兼容FF和IE
- BZOJ 4289: PA2012 Tax(最短路)
- php QR Code二维码生成类
- BZOJ 3714: [PA2014]Kuglarz(最小生成树)
- 我的HTML总结之表单
- php 二维码生成类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- codeforces 1005D(数学)
- JSP开发简单实例演示
- Linux笔记【003】| Linux系统目录结构与基本命令
- codeforces1322A(括号匹配)
- codeforces 1296D(贪心)
- codeforces 1399D
- JSP开发之JSTL介绍和使用
- codeforces 1283E(贪心)
- codeforces1216C (矩形面积交)
- codeforces 1234C(思维)
- codeforces 1405B(思维)
- codeforces 1216D(数学)
- codeforces 1256D(优先队列+贪心)
- codeforces 1343D(差分数组)
- codeforces1385D (递归+分治)