Leetcode 1147. 段式回文(DAY 60) ---- 动态规划学习期(第一题难度并不难但是感觉今天状态不是很好)

原题题目

在这里插入图片描述



代码实现(首刷部分看解部分自解)

int test(char* text,int count,int start1,int start2)
{
    
    
    int i;
    for(i=0;i<count;i++)
        if(text[start1+i] != text[start2+i])    return 0;
    return 1;
}

int longestDecomposition(char * text){
    
    
    int strl = strlen(text),start1 = 0,start2 = strl-1,count = 1,ret = 0,start1end = 0;
    for(int i=0;start1end<=start2;i++)
    {
    
        
        if(start1end == start2)  ret++;
        else
        {
    
    
            if(test(text,count,start1,start2))
            {
    
    
                ret += 2;
                start1 = start1end+1;
                count = 1;
            }
            else 
            {
    
    
                count++;
                if(start1end == start2-1)   ret++;
            }
        }
        start1end++;
        start2--;
    }
    return ret;
}

猜你喜欢

转载自blog.csdn.net/qq_37500516/article/details/114385824