uva 282 - Rename(字符串)
来源:互联网 发布:java互联网必读 编辑:程序博客网 时间:2024/06/07 10:33
题目链接:uva 282 - Rename
题目大意:给定一个命令行的重命名命令,最多包含一个‘*’,然后给定一些文件名,将该命令转换成若干个执行命令。
解题思路:因为最多一个‘*’,所以直接开头结尾匹配掉,再处理中间的即可。
#include <cstdio>#include <cstring>#include <string>#include <vector>#include <iostream>#include <algorithm>using namespace std;vector<string> g;string order, a, b;void solve () { cout << order << " " << a << " " << b << endl; for (int i = 0; i < g.size(); i++) { int l = 0, r = a.length() - 1; int gl, gr; for (gl = 0; gl < g[i].length(); gl++) { if (a[l] == g[i][gl]) l++; else break; } for (gr = g[i].length() - 1; gr >= 0; gr--) { if (a[r] == g[i][gr]) r--; else break; } if (a[l] != '*' || a[r] != '*' || gl - gr > 1) continue; cout << "mv " << g[i] << " "; int j; for (j = 0; j < b.length() && b[j] != '*'; j++) cout << b[j]; for (; gl <= gr; gl++) cout << g[i][gl]; for (j = j + 1; j < b.length(); j++) cout << b[j]; cout << endl; }}int main () { while (cin >> order) { g.clear(); if (order != "end") { g.push_back(order); while (cin >> order && order != "end") g.push_back(order); } while (cin >> order && order != "end") { cin >> a >> b; solve(); } cout << endl; } return 0;}
0 0
- uva 282 - Rename(字符串)
- UVA 282 - Rename(字符串处理)
- rename
- rename
- rename
- rename
- rename
- rename()
- uva 401 Palindromes //字符串
- 刘汝佳uva 字符串专题
- uva 10534 波浪字符串
- 字符串专项:UVa 12012
- 字符串专项:UVa 10298
- 字符串专项:UVa 11475
- 字符串专项:UVa 11855
- uva 10189【字符串】
- UVA 401 Palindromes 字符串
- UVA 490 字符串旋转
- 【学习Android NDK开发】native code通过JNI调用Java方法
- Valid Parentheses
- quartusII 11.0安装与破解
- va_start、va_end、va_list的使用
- PHP强大的数组
- uva 282 - Rename(字符串)
- STM32F207管脚映射配置PWM输出笔记
- android AsyncTask 使用方法
- android 电容屏(四):驱动调试之驱动程序分析篇 -- FocalTech
- 打击犯罪
- 【OC学习-7】2种常用的对象初始化方法以及方法的具体写法
- NDK开发历程(一):android native code的调试方法
- Yale开放课程博弈论6
- Linux用户空间与内核空间