
Java怎么找一个ArrayList中最长的连续相同元素?
例子:{a,a,a,b,b,b,a,a,a,a,b,b,c}应该返回中间4个aaaa的位置{a,a,a,b,b,a}返回前三个a的位置{a,b,b,a}的话就返回中间两个...
例子:
{a,a,a,b,b,b,a,a,a,a,b,b,c}
应该返回 中间4个aaaa的位置
{a,a,a,b,b,a}
返回前三个a的位置
{a,b,b,a}
的话就返回中间两个b的位置 展开
{a,a,a,b,b,b,a,a,a,a,b,b,c}
应该返回 中间4个aaaa的位置
{a,a,a,b,b,a}
返回前三个a的位置
{a,b,b,a}
的话就返回中间两个b的位置 展开
2个回答
展开全部
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Joey
{
private static int getSeat(List<String> list)
{
int max = Integer.MIN_VALUE;
int index = 0;
for(int i = 0; i < list.size(); i++)
{
String a = list.get(i);
int num = 1;
int j = i + 1;
while(j < list.size() && a.equals(list.get(j)))
{
num++;
j++;
}
if(max < num)
{
index = i;
max = num;
}
i += num - 1;
}
return index;
}
public static void main(String[] args)
{
//List<String> list = Arrays.asList("a", "a", "a", "b", "b", "b", "a", "a", "a", "a", "b", "b", "c");
//List<String> list = Arrays.asList("a", "a", "a", "b", "b", "a");
List<String> list = Arrays.asList("a", "b", "b", "a");
int i = getSeat(list);
System.out.println(i);
}
}
展开全部
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("2");
list.add("3");
list.add("4444");
list.add("4444");
list.add("4444");
list.add("4444");
list.add("5");
list.add("5");
list.add("5");
int findStrlength = 0;
String findStr = "";
int prevStrLength = 0;
String prevStr = "";
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
if (!prevStr.equals(s)) {
if (prevStrLength > findStrlength) {
findStr = prevStr;
findStrlength = prevStrLength;
}
prevStrLength = 0;
prevStr = s;
}
prevStrLength += 1;
}
System.out.println(findStr + ":" + findStrlength);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询