设为首页 加入收藏

TOP

No to Palindromes
2015-07-20 17:43:38 来源: 作者: 【 】 浏览:1
Tags:Palindromes
/*
题意:给你一个字符串,寻找按照字典序排的下一个符合条件的字符串
下一个满足的字符串一定是改变尽量靠右的字符才能得到(字典序),
从最右面开始找,假设当前是第i位,如果i位增加之后满足和i-1,i-2位均不相同的话,
那么最小的肯定就是从这里开始改的(因为前缀没有回文字串,所以改变i位后的串也不会有),
接下来就把后面的为都补全。
*/
# include
  
   
# include
   
     # include
    
      # include
     
       using namespace std; char a[1234567]; int n,p; bool judge(int now) { for(int i=1;; i++) { if(a[now]+i>'a'+p-1) return false; if(now>0&&a[now]+i==a[now-1]) continue; if(now>1&&a[now]+i==a[now-2]) continue; a[now]+=i; return true; } } void get(int now) { for(int i=0;; i++) { if(now>0&&'a'+i==a[now-1]) continue; if(now>1&&'a'+i==a[now-2]) continue; a[now]='a'+i; return ; } } int main() { scanf("%d%d",&n,&p); scanf("%s",a); int ok=0; int i; for( i=n-1; i>=0; i--) { if(judge(i)) { ok=1; break; } } if(ok) { for( i=i+1; i
      
       
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Leetcode 栈 Longest Valid Paren.. 下一篇zoj 3810 A Volcanic Island(构造)

评论

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

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)