热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CCFCSP2020063Markdown渲染器60

原题链接:CCF-CSP202006-3Markdown渲染器写的下面这个代码就是奔着40分去的,结果呢,细节又没把握好,一

原题链接:CCF-CSP 202006-3 Markdown渲染器
在这里插入图片描述
写的下面这个代码就是奔着40分去的,结果呢,细节又没把握好,一直只有20分,找错的时候发现自己犯的两个错误:
1.如果一开头就有空格行,需要忽略,无需计数
2.如果一个段落中,前一行没有满w(假设w为10,前一行刚好9个字符),那么需要换到下一个行加字符,这时候就刚好满足了w,需要先存入,再讨论该行的情况

#include
using namespace std;
const int N=510;bool check(string s)
{for(int i&#61;0;i<s.size();i&#43;&#43;){if(s[i]!&#61;&#39; &#39;) return false;}return true;
}int main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int w; cin>>w;int res&#61;0;cin.ignore();string s,t;vector<string> v;int flag&#61;0,len&#61;0;while(!cin.eof()){getline(cin,s);if(check(s)){flag&#61;1;if(len>0) v.push_back(t);len&#61;0; t&#61;"";continue;}if(flag && v.size()>0) v.push_back(" ");//错误点一flag&#61;0;int i&#61;0,j&#61;s.size()-1;while(i<&#61;j && s[i]&#61;&#61;&#39; &#39;) i&#43;&#43;;while(j>&#61;0 && s[j]&#61;&#61;&#39; &#39;) j--;s&#61;s.substr(i,j-i&#43;1);i&#61;0;if(len>0){len&#43;&#43;; t&#43;&#61;" ";if(len&#61;&#61;w)//错误点二{len&#61;0;res&#43;&#43;;v.push_back(t);t&#61;"";}}while( len<w ){for(;i<s.size() && len<w;i&#43;&#43;){len&#43;&#43;;t&#43;&#61;s[i];}if(len&#61;&#61;w){len&#61;0;res&#43;&#43;;v.push_back(t);t&#61;"";while(i<s.size() && s[i]&#61;&#61;&#39; &#39;) i&#43;&#43;;}if(i&#61;&#61;s.size() ) break;}}//for(auto tmp:v) cout<cout<<v.size();return 0;
}

60分代码&#xff1a;后面的实在是写不出来了&#xff0c;罢了罢了

#include
using namespace std;
const int N&#61;510;
vector<string> v;
int w;
int res&#61;0,len&#61;0,f&#61;-1,pre&#61;-1;bool check(string s)
{for(int i&#61;0;i<s.size();i&#43;&#43;){if(s[i]!&#61;&#39; &#39;) return false;}return true;
}string drop(string s)
{int i&#61;0,j&#61;s.size()-1;while(i<&#61;j && s[i]&#61;&#61;&#39; &#39;) i&#43;&#43;;while(j>&#61;0 && s[j]&#61;&#61;&#39; &#39;) j--;s&#61;s.substr(i,j-i&#43;1);return s;
}int main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>w;cin.ignore();string s,t;while(!cin.eof()){getline(cin,s);if(check(s)){if(!check(t)) v.push_back(t);t&#61;"";len&#61;0;f&#61;pre&#61;0;}else if((s.size()>&#61;2 && s[0]&#61;&#61;&#39;*&#39; && s[1]&#61;&#61;&#39; &#39;) || (pre&#61;&#61;2 && s.size()>&#61;2 && s[0]&#61;&#61;&#39; &#39; && s[1]&#61;&#61;&#39; &#39;) ){f&#61;2;if(pre&#61;&#61;0 && v.size()>0) v.push_back(" ");if(pre&#61;&#61;1){if(!check(t)) v.push_back(t);v.push_back(" ");t&#61;"";len&#61;0;}if(s.size()>&#61;2 && s[0]&#61;&#61;&#39;*&#39; && s[1]&#61;&#61;&#39; &#39;){if(pre&#61;&#61;2 && !check(t)) v.push_back(t);t&#61;" . "; len&#61;3;s&#61;s.substr(2);s&#61;drop(s);int i&#61;0;while(len<w){for(;i<s.size() && len<w ;i&#43;&#43;) { t&#43;&#61;s[i]; len&#43;&#43;; }if(len&#61;&#61;w){if(!check(t)) v.push_back(t);len&#61;3; t&#61;" ";while(i<s.size() && s[i]&#61;&#61;&#39; &#39;) i&#43;&#43;;}if(i&#61;&#61;s.size()) break;}}else if(pre&#61;&#61;2 && s.size()>&#61;2 && s[0]&#61;&#61;&#39; &#39; && s[1]&#61;&#61;&#39; &#39;){if(len>0){if(t!&#61;" . "){t&#43;&#61;" "; len&#43;&#43;;if(len&#61;&#61;w){if(!check(t)) v.push_back(t);t&#61;" ";len&#61;3;}}}s&#61;s.substr(2);s&#61;drop(s);int i&#61;0;while(len<w){for(;i<s.size() && len<w ;i&#43;&#43;) { t&#43;&#61;s[i]; len&#43;&#43;; }if(len&#61;&#61;w){if(!check(t)) v.push_back(t);len&#61;3; t&#61;" ";while(i<s.size() && s[i]&#61;&#61;&#39; &#39;) i&#43;&#43;;}if(i&#61;&#61;s.size()) break;}}pre&#61;2;}else{f&#61;1;if(pre&#61;&#61;0 && v.size()>0){v.push_back(" "); t&#61;""; len&#61;0;}if(pre&#61;&#61;2){if(!check(t)) v.push_back(t);v.push_back(" "); t&#61;""; len&#61;0;}if(len>0){t&#43;&#61;" ";len&#43;&#43;;if(len&#61;&#61;w){if(!check(t)) v.push_back(t);t&#61;""; len&#61;0;}}s&#61;drop(s);int i&#61;0;while(len<w){for(;i<s.size() && len<w ;i&#43;&#43;) { t&#43;&#61;s[i]; len&#43;&#43;; }if(len&#61;&#61;w){if(!check(t)) v.push_back(t);len&#61;0; t&#61;"";while(i<s.size() && s[i]&#61;&#61;&#39; &#39;) i&#43;&#43;;}if(i&#61;&#61;s.size()) break;}pre&#61;1;}}//for(auto tmp:v) cout<cout<<v.size();return 0;
}

推荐阅读
  • 本文介绍如何使用线段树解决洛谷 P1531 我讨厌它问题,重点在于单点更新和区间查询最大值。 ... [详细]
  • 开发笔记:实现1353表达式中的括号匹配(栈的应用) ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 题目解析给定 n 个人和 n 种书籍,每个人都有一个包含自己喜好的书籍列表。目标是计算出满足以下条件的分配方案数量:1. 每个人都必须获得他们喜欢的书籍;2. 每本书只能分配给一个人。通过使用深度优先搜索算法,可以系统地探索所有可能的分配组合,确保每个分配方案都符合上述条件。该方法能够有效地处理这类组合优化问题,找到所有可行的解。 ... [详细]
  • 在C++程序中,文档A的每一行包含一个结构体数据,其中某些字段可能包含不同数量的数字。需要将这些结构体数据逐行读取并存储到向量中,随后不仅在控制台上显示,还要输出到新创建的文档B中。希望得到指导,感谢! ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 本文提出了一种基于栈结构的高效四则运算表达式求值方法。该方法能够处理包含加、减、乘、除运算符以及十进制整数和小括号的算术表达式。通过定义和实现栈的基本操作,如入栈、出栈和判空等,算法能够准确地解析并计算输入的表达式,最终输出其计算结果。此方法不仅提高了计算效率,还增强了对复杂表达式的处理能力。 ... [详细]
author-avatar
手机用户2602922607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有