设为首页 加入收藏

TOP

ZOJ3818-Pretty Poem(暴力枚举)
2015-07-20 17:44:26 来源: 作者: 【 】 浏览:3
Tags:ZOJ3818-Pretty Poem 暴力 枚举

题目链接


题意:求所给字符串是否符合ABABA或者ABABCAB的形式,如果可以的话输出Yes,不可以的话为No。

思路:暴力枚举A和B的长度,再用从长度减去3倍的AB长度,即为C的长度,看组合而成的字符串是否与给定的相等。在这里string中的substr函数是个好东西。

代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        using namespace std; char str[55]; int main() { int cas; scanf("%d", &cas); while (cas--) { scanf("%s", str); string s; int len = strlen(str); for (int i = 0; i < len; i++) if (isupper(str[i]) || islower(str[i])) s += str[i]; len = s.length(); int flag = 0; for (int i = 1; i < len / 2 && !flag; i++) { for (int j = 1; j < len / 2 && !flag; j++) { string A = s.substr(0, i); string B = s.substr(i, j); if (A == B) continue; if (A + B + A + B + A == s) { flag = 1; break; } if (len - (i + j) * 3 > 0) { string AB = A + B; string C = s.substr(2 * (i + j), len - (i + j) * 3); if (A == C || B == C) continue; if (AB + AB + C + AB == s) { flag = 1; break; } } } } if (flag) printf("Yes\n"); else printf("No\n"); } return 0; }
      
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++中Reference与指针(Pointer).. 下一篇LeetCode-Binary Tree Preorder T..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)