String Successor(字符串处理)
来源:互联网 发布:软件下载安装教程 编辑:程序博客网 时间:2024/05/29 16:52
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=91#problem/C
比赛时候一直没看懂题意,sad......
题意:给定一个字符串,把它变成n个“String Successor”,若一个字符串中没有字母或数字,直接在最右边的字符加1,否则找到从右边数第一个字母或数字加1,若是'9' 'z'或'Z',加1后边分别变为'0','a'和'A',并向前面的第一个数字或字母进位,若前面没有字母或数字,就直接在当前字母或数字前面加上'1','a'或'A'。
#include <stdio.h>#include <string.h>#include <algorithm>#include <string>#include <iostream>#include <ctype.h>using namespace std;void dfs(string &str, int i){if(str[i] == '9'+1 || str[i] == 'z'+1 || str[i] == 'Z'+1)//先判断是否应该进位{char ch;if(str[i] == '9'+1){ch = '1';str[i] = '0';}else if(str[i] == 'z'+1){ch = 'a';str[i] = 'a';}else{ch = 'A';str[i] = 'A';}int j;for(j = i-1; j >= 0; j--)if(isalpha(str[j]) || isdigit(str[j]) )break;if(j != -1) //若i之前有字母或数字,递归进位{str[j]++;dfs(str,j);}else str.insert(str.begin()+i,ch);//若i之前没有字母或数字,就在i-1处增加'1''A'或‘a’。}}int main(){int test;string str;int n;cin >> test;while(test--){cin >> str >> n;while(n--){int i;for( i = str.size()-1; i >= 0; i--)if( isalpha(str[i]) || isdigit(str[i]) )break;if(i == -1)//没有字母或数字,直接在最右边加1str[ str.size()-1 ] ++;else{str[i]++;//加1后向前进位dfs(str,i);}printf("%s\n",str.c_str());}printf("\n");}return 0;}
0 0
- String Successor(字符串处理)
- ZOJ 3490 String Successor//字符串处理
- ZOJ 3490 String Successor 字符串处理
- zoj 3490 String Successor 字符串 进制
- D - String Successor 字符串模拟题 耗时!
- String Successor
- ZOJ Problem Set - 3490 String Successor(字符串模拟)
- zoj 3490 string successor
- UVA 3490 - String Successor
- ZOJ 3490 String Successor
- zoj 3490 String Successor
- ZOJ 3490 String Successor
- D - String Successor
- ZOJ3490-String Successor
- UVA ZOJ 3490 - String Successor
- ZOJ 3490String Successor(模拟)
- zoj 3490 String Successor 模拟
- ZOJ- 3490 String Successor 模拟
- 黑马程序员--C#中面向对象与面向过程
- hdu 1568 (log取对数 / Fib数通项公式)
- Altera笔记:Introduction to Parallel Computing with OpenCL
- 面试软件测试 智力题题目与部分答案
- Oracle 11.2.0.3.0 RAC Silent Install-3Nodes
- String Successor(字符串处理)
- NSDateFormatter formats
- HDU 2138 How many prime numbers(参考博客)
- 经典测试用例:电梯、杯子、桌子、洗衣机
- Servlet的参数配置
- java 执行 oracle 存储过程
- 黑马程序员--构造方法与继承
- oracle over (partition by )用法
- 测试面试