List、Set、Arrays、数组等应用的样例编写

根据一个面试题目编写:请实现一个函数:最长顺子;输入很多个整数(1<=数值<=13),返回其中可能组成的最长的一个顺子(顺子中数的个数代表顺的长度); 其中数字1也可以代表14; 顺子包括单顺\双顺\3顺;单顺的定义是连续5个及以上连续的数,比如1,2,3,4,5、3,4,5,6,7,8和10,11,12,13,1等;双顺的定义是连续3个及以上连续的对(对:两个相同的数被称为对),比如1,1,2,2,3,3、4,4,5,5,6,6,7,7和11,11,12,12,13,13,1,1等;3顺的定义是连续2个及以上连续的3张(3张:3个相同的数被称为3张),比如1,1,1,2,2,2、3,3,3,4,4,4,5,5,5,6,6,6和13,13,13,1,1,1等等; 

比如:输入数组[1,5,2,3,4,4,5,9,6,7,2,3,3,4], 输出数组[2,2,3,3,4,4,5,5]

 

具体实现如下

 

package org.fanzone.collections;

 

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashSet;

import java.util.Iterator;

import java.util.List;

import java.util.Scanner;

import java.util.Set;

 

/** 

 * Title: base<br> 

 * Description: <br> 

 * Copyright: Copyright (c) 2011 <br> 

 * Create DateTime: Jun 2, 2011 8:56:25 PM <br> 

 * @author wangmeng

 */

public class CardSort {

 

public static void main(String[] args) {

 

Scanner scanner = new Scanner(System.in);

List<String> list = new ArrayList<String>();

Set<String> set = new HashSet<String>();

if(scanner.hasNext()){

String[] num = scanner.next().split(",");

Arrays.sort(num);

for(int i=0;i<num.length;i++){

for(int j=0;j<num.length-i-1;j++){

if(num[j].equals(num[j+1])){

set.add(num[j]);

}

}

}

for(int i=0;i<num.length;i++){

for(Iterator<String> itr = set.iterator();itr.hasNext();){

String n = itr.next();

if(num[i].equals(n)){

list.add(n);

}

}

}

for(String element : list){

System.out.print(element+" ");

}

}

}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值