POJ 1302

POJ 1302

题意

给出一串字符,求变异后的字符串

思路

  1. 如果是字母,这当前字母的位置变为后面需要变异字母的总和
  2. 如果是数字1-9,则当前数字改变为当前数字减1,并跳过当前数字的个数继续向后执行。

英语不太好,网上查的题意。
递归也不太会,网上学习的poj1302解题报告

#include <iostream>
#include <cstring>

using namespace std;

char ss[15];
int n;
char str[25];
const char a1[] = "ENDOFINPUT";

int solve(int p){
    if(str[p] == '0'|| p == n)
        return 0;
    if(str[p]>='A'&&str[p]<='Z'){
        int a = solve(p+1);
        str[p] = a%10 + '0';
        return a+1;
    }
    if(str[p]>='0'&&str[p]<='9'){
        str[p] -= 1;
        if(p+(str[p]-'0')+1<n){
            int b = solve(p+(str[p]-'0')+1);
            return b+1;
        }else{
            int c = solve(p+1);
            return c+1;
        }
    }
}

int main(){

    while(1){
        cin>>ss;
        if(strcmp(ss,a1) == 0)
            break;
        cin>>n>>str;
        cin>>ss;
        solve(0);
        cout<<str<<endl;
    }

    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,792评论 0 33
  • 其实我想念你牵着我的手在操场闲逛,想念坐在小电瓶后面穿越校园大道,想念仰头看你的笑,想念你的一切,真的真的好喜欢你
    清许呀阅读 177评论 2 2
  • 心就是疼,感觉在滴血,没有人会感同身受,现在我很忙,但也忙里偷闲的想你一下,脸上为你下着雨,但心理还是为你打伞,也...
    832844a53813阅读 124评论 0 0
  • 看完一本书,让你有想法说出来,这就需要脑袋快速转起来了。这里不只是接受别人的知识,更要结合自身的情况,来一场...
    祈心阁阅读 304评论 1 0