首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个合并字冠的有关问题,估计没有描述清楚…进贴看详细描述

2012-09-14 
一个合并字冠的问题,估计没有描述清楚……,进贴看详细描述是这样的,给一组数据 比如13712345670137123456711

一个合并字冠的问题,估计没有描述清楚……,进贴看详细描述
是这样的,给一组数据 比如
13712345670
13712345671
13712345672
13712345673
13712345674
13712345675
13712345676
13712345677
13712345678
13712345679
13712345670
就可以合并为一个字冠1371234567
如果数据中还有
1371234560
1371234561
1371234562
1371234563
1371234564
1371234565
1371234566
1371234568
1371234569
就还可以合并成
137123456
最后剩下的就是一些不能在合并的字冠组;
比如中国所有理论上的手机号码做输入数据的话,最后的结果就是 13 和15


这样,每天都有很多很多很多条数据,比如200w条在sql server里

我的方法是做一颗树,然后每个节点有10个叶子就剪掉他的叶子,让这个节点做叶子。
但是这样要把整个数据都读到内存。

各位大大有没有什么更好的办法。

er……,说那么多,不知道描述清楚了没








[解决办法]
得不偿失
[解决办法]

探讨
得不偿失

[解决办法]
闲着没事,给你写了个简单代码,如下:

Java code
package com.lihan;public class testNum {    public Long sum(Long[] i){        Long max=i[0];        for(int k=0;k<i.length;k++)        {            if(i[k]>max)            {                max=i[k];            }        }        return max;    }    /**     * @param args     * @author  李晗     */    public static void main(String[] args) {        String[] num={"13712345671","13712345672","13712345673","13712345674","13712345675","13712345676","13712345677","13712345678"};        Long[] j=new Long[num.length];        for(int i=0;i<num.length;i++)        {            j[i]=Long.parseLong(num[i]);        }        testNum t=new testNum();        Long sum=t.sum(j);        String str=String.valueOf(sum);        String s=num[0];        for(int x=0;x<s.length();x++)        {            if(str.charAt(x)==s.charAt(x))            {                System.out.print(str.charAt(x));            }        }        // TODO Auto-generated method stub    }} 

热点排行