欢迎来到天天文库
浏览记录
ID:15095355
大小:78.00 KB
页数:15页
时间:2018-08-01
《软件开发实践报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学生实验报告 实验名称:软件开发实践指导教师:姓名:学号:班级:日期:实验报告姓名:学号:一、实验号题目:寻找所有的路径二、实验的目的和要求:读懂一段程序的代码,学会里面分析问题的思路,规范自己写代码.在阅读大量源代码的时候,能够提高自己对大的软件的把握能力,快速了解脉络,熟悉细节,不仅仅是编程技巧,还能在程序的架构,设计方面提高自己的能力。三、算法描述:你将给的字符串存储在一个矩形格子中。在这个矩形格子寻找一个字符串。出发点可能在格子中任何地方。方向可能向上,下,左,右,或对角的一个字母到下一个
2、字母,每个格子只能占用一次。你要归还int类型的数来表示所有可能的路径的数目。如果返回结果是超过1,000,000,000,的用-1表示.;eg:{"ABC","FED","GAI"}"ABCDEA"Returns:2{"ABC","FED","GHI"}"ABCDEFGHI"Returns:1{"ABC","DEF","GHI"}"ABCD"Returns:0{"AAAAA","AAAAA","AAAAA","AAAAA","AAAAA"}"AAAAAAAAAAA"Returns:-1{"ABAB
3、A","BABAB","ABABA","BABAB","ABABA"}"ABABABBA"Returns:56448四、源程序清单:#include#include#includeusingnamespacestd;//RequiredforTopCodergcccompilerclassWordPath{typedefstructPOINTtag{intx;inty;intcount;}POS;typedefvectorVE
4、TPOS;public:intcountPaths(vectorgrid,stringfind){intfindStrLen=find.length();intgridSize=grid.size();intgridStrLen=grid[0].length();vectorvec(findStrLen);inti,j,k;//遍历grid中的每一个字符for(i=0;i5、k6、{if(vec[k].size()==0)return0;}VETPOSmidVes;//保存当前位置向量中符合条件点的临时向量//遍历从位置1开始的位置向量for(i=1;i7、c[i-1])){midVes.push_back(cur);}}//清空原来的向量vec[i].clear();//如果midVes中有符合条件的点存在,则将它保存到原来的位置向量中去//否则返回0if(midVes.size()>0){vec[i]=midVes;}else{return0;}}//统计保存在最后位置向量中的点的count值intcount=0;for(j=0;j8、count+=cur.count;if(count>1000000000)return-1;}returncount;}intpathCount(POS&ps,VETPOS&pre){//初始为0ps.count=0;inti;//遍历pre中的每个位置坐标for(i=0;i
5、k6、{if(vec[k].size()==0)return0;}VETPOSmidVes;//保存当前位置向量中符合条件点的临时向量//遍历从位置1开始的位置向量for(i=1;i7、c[i-1])){midVes.push_back(cur);}}//清空原来的向量vec[i].clear();//如果midVes中有符合条件的点存在,则将它保存到原来的位置向量中去//否则返回0if(midVes.size()>0){vec[i]=midVes;}else{return0;}}//统计保存在最后位置向量中的点的count值intcount=0;for(j=0;j8、count+=cur.count;if(count>1000000000)return-1;}returncount;}intpathCount(POS&ps,VETPOS&pre){//初始为0ps.count=0;inti;//遍历pre中的每个位置坐标for(i=0;i
6、{if(vec[k].size()==0)return0;}VETPOSmidVes;//保存当前位置向量中符合条件点的临时向量//遍历从位置1开始的位置向量for(i=1;i7、c[i-1])){midVes.push_back(cur);}}//清空原来的向量vec[i].clear();//如果midVes中有符合条件的点存在,则将它保存到原来的位置向量中去//否则返回0if(midVes.size()>0){vec[i]=midVes;}else{return0;}}//统计保存在最后位置向量中的点的count值intcount=0;for(j=0;j8、count+=cur.count;if(count>1000000000)return-1;}returncount;}intpathCount(POS&ps,VETPOS&pre){//初始为0ps.count=0;inti;//遍历pre中的每个位置坐标for(i=0;i
7、c[i-1])){midVes.push_back(cur);}}//清空原来的向量vec[i].clear();//如果midVes中有符合条件的点存在,则将它保存到原来的位置向量中去//否则返回0if(midVes.size()>0){vec[i]=midVes;}else{return0;}}//统计保存在最后位置向量中的点的count值intcount=0;for(j=0;j8、count+=cur.count;if(count>1000000000)return-1;}returncount;}intpathCount(POS&ps,VETPOS&pre){//初始为0ps.count=0;inti;//遍历pre中的每个位置坐标for(i=0;i
8、count+=cur.count;if(count>1000000000)return-1;}returncount;}intpathCount(POS&ps,VETPOS&pre){//初始为0ps.count=0;inti;//遍历pre中的每个位置坐标for(i=0;i
此文档下载收益归作者所有