16哈理工新生赛 I 行编辑器 (模拟) 快来打我* 2022-07-14 10:21 92阅读 0赞 题目链接:[点击打开链接][Link 1] <table> <tbody> <tr> <td><span style="font-size:18px">行编辑器</span></td> </tr> <tr> <td> <table> <tbody> <tr> <td><span style="font-size:18px">Time Limit: 1000 MS</span></td> <td><span style="font-size:18px">Memory Limit: 32768 K</span></td> </tr> </tbody> </table> <table> <tbody> <tr> <td><span style="font-size:18px">Total Submit: 109<span>(60 users)</span></span></td> <td><span style="font-size:18px">Total Accepted: 64<span>(57 users)</span></span></td> <td><span style="font-size:18px">Rating: <img src="http://acm.hrbust.edu.cn/Public/images/star-solid.png" alt=""><img src="http://acm.hrbust.edu.cn/Public/images/star-solid.png" alt=""><img src="http://acm.hrbust.edu.cn/Public/images/star-solid.png" alt=""><img src="http://acm.hrbust.edu.cn/Public/images/star-half2.png" alt=""></span></td> <td><span style="font-size:18px">Special Judge: <span> No</span></span></td> </tr> </tbody> </table> </td> </tr> <tr> <td><span style="font-size:18px">Description</span></td> </tr> <tr> <td> <p style="text-indent:21pt"><span style="font-size:18px"><span style="font-family:宋体">这次我们要写一个简单的行编辑器,当按下</span><span style="">‘#’</span><span style="font-family:宋体">时代表按下了一次退格符,当按下</span><span style="">‘@’</span><span style="font-family:宋体">时代表一个退行符(使当前行的字符全部无效)。例如,假设从终端接收了这样的两行字符:</span><span style=""></span> </span></p> <p style="text-indent:21pt"><span style="font-size:18px"><span style="">Whil#lr#e(s#*s)</span> </span></p> <p style="text-indent:21pt"><span style="font-size:18px"><span style="">outcha@putchar(*s=#++)</span> </span></p> <p style="text-indent:21pt"><span style="font-size:18px"><span style="font-family:宋体">则实际有效的是下列两行:</span><span style=""></span> </span></p> <p style="text-indent:21pt"><span style="font-size:18px"><span style="">While(*s)</span> </span></p> <p style="text-indent:21pt"><span style="font-size:18px"><span style="">putchar(*s++)</span> </span></p> <p style="text-indent:21pt"><span style="font-size:18px"><span style="font-family:宋体">请你编写一个程序,输出实际有效的字符串。</span><span style=""></span> </span></p> </td> </tr> <tr> <td><span style="font-size:18px">Input</span></td> </tr> <tr> <td> <p><span style="font-size:18px"> 第一行是一个整数T,表示测试数据组数。 </span></p> <p><span style="font-size:18px"> 接下来每行为一个字符串(不含空格和任何空白),表示输入的原始字符串 </span></p> <p><span style="font-size:18px"><br> </span></p> </td> </tr> <tr> <td><span style="font-size:18px">Output</span></td> </tr> <tr> <td> <p style="text-indent:21pt"><span style="font-size:18px"><span style="font-family:宋体">输出最终的正确字符串。</span><span style=""></span> </span></p> </td> </tr> <tr> <td><span style="font-size:18px">Sample Input</span></td> </tr> <tr> <td> <p><span style="font-size:18px">2 </span></p> <p><span style="font-size:18px">Whil#lr#e(s#*s) </span></p> <p><span style="font-size:18px">outcha@putchar(*s=#++) </span></p> <p><span style="font-size:18px"><br> </span></p> </td> </tr> <tr> <td><span style="font-size:18px">Sample Output</span></td> </tr> <tr> <td> <p><span style="font-size:18px">While(*s) </span></p> <p><span style="font-size:18px">putchar(*s++) </span></p> <p><span style="font-size:18px"><br> </span></p> </td> </tr> <tr> <td><span style="font-size:18px">Source</span></td> </tr> <tr> <td><span style="font-size:18px">2016级新生程序设计全国邀请赛</span></td> </tr> </tbody> </table> 题解:倒着搞一遍就可以了。 AC代码: #include<iostream> #include<algorithm> #include<string> using namespace std; int main() { string str,s; int t,j; cin>>t; while(t--) { cin>>str; j=0; for(int i=str.length()-1; i>=0; i--) { if(str[i]=='@')break; else if(str[i]=='#') i--; else { s[j]=str[i]; j++; } } for(int i=j-1;i>=0;i--)cout<<s[i];cout<<endl; } return 0; } [Link 1]: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2301
还没有评论,来说两句吧...