[leetcode-481]Magical String

来源:互联网 发布:中智软件开发有限公司 编辑:程序博客网 时间:2024/05/04 01:04

上午blog里说了这道题,嗯,睡个午觉改了下就出来了,原来的垃圾代码直接扔了,根据上午那个题代码改的,发现了string操作比int数组操作还是爽多了,直接上代码:

class Solution {public:    int magicalString(int n) {        if(n==0)return 0;        string basic="12";        string temp="1";        string acc;        int sum=1;        int i=1,flag=0;//flag=0代表添2,flag=1代表添1        while(i<n){            for(;i<basic.size();i++){                if(basic[i]=='1'){                    acc=flag==1?"1":"2";                    sum+=1;                }                else                    acc=flag==1?"11":"22";                temp+=acc;                flag=1-flag;            }            basic=temp;        }        i--;        while(i>=n){            if(basic[i]=='1'){                sum--;            }            i--;        }        return sum;    }};
还是附赠一个测试用主函数(主函数日常写的糙...别吐槽,就是测试用用):

int main(){    Solution solu;    int x=solu.magicalString(6);    cout<<x<<endl;    return 0;}
中间wa了几次,都是边界有问题,自己写的记得测测1,3,4,5,11这几个数。

0 0
原创粉丝点击