本文共 590 字,大约阅读时间需要 1 分钟。
题意:在互联网上,有一种很流行的扑克牌的玩法,叫”斗地主“,其中有一个规则就是玩家可以出连续的牌,一般要求连续的5张(含)以上,例如:56789.现在要求写一个程序,找出玩家手里最长的连牌。规则如下:
1、为简单起见,只考虑包含1-9数字的牌,不考虑JQKA; 2、假设牌已经排好了顺序,例如: 2334455678; 3、输出连续张数最多的连牌。如果有两个序列长度一样,输出后面那个序列,如:234678,输出678这个序列; 4、输出结果是一个字符串,如”678“、”3456“,数字之间不含空格; 5、字符串长度不超过50。思路:题意已经很简单,思路就是直接遍历,维护一个最大长度的区间,同时需要记录下当前的状态就可以了。
代码:
public static String doudizhu(String s){ if(s.length()==0) return null; int cur_l=0,cur_r=1;//当前的区间 int max_l=0,max_r=0;//维护的最大区间 int max_len=0,cur_len=1;//维护两个长度 int dp[]=new int[s.length()]; int cnt=0; for(int i=0;i
转载地址:http://auncf.baihongyu.com/