Problem22

简介:

1.Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score.  
2.  
3.For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938  53 = 49714.  
4.  
5.What is the total of all the name scores in the file? 


1.package com.yao;  
2.import java.io.BufferedReader;  
3.import java.io.File;  
4.import java.io.FileReader;  
5.import java.io.IOException;  
6.import java.util.LinkedList;  
7.import java.util.List;  
8./** 
9. * Created by IntelliJ IDEA. 
10. * User: shuimuqinghua77 
11. * Date: 12-3-13 
12. * Time: 下午9:04 
13. */  
14.public class Problem22 {  
15.    public static void main(String[] args) throws IOException {  
16.        File file=new File("C:\\Users\\Administrator\\Desktop\\names.txt");  
17.  
18.        ///home/yaoyao/template/names.txt  
19.        FileReader fr=new FileReader(file);  
20.        BufferedReader br=new BufferedReader(fr);  
21.        String namestxt=br.readLine();  
22.        br.close();  
23.        fr.close();  
24.        String[] names=namestxt.split("\",\"");  
25.        /*去除最后一个和第一个name的引号*/  
26.        names[0]=names[0].substring(1, names[0].length());  
27.        names[names.length-1]=names[names.length-1].substring(0,names[names.length-1].length()-1);  
28.        /**建立一个链表  以字典序列存储名字*/  
29.        List<String> list=new LinkedList<String>();  
30.        int[] location=new int[26];  
31.        long start=System.currentTimeMillis();  
32.        for(String name:names){  
33.            if(list.size()==0){  
34.                location[name.charAt(0)-'A']++;  
35.                list.add(name);  
36.                continue;  
37.            }  
38.            int bigger=0;  
39.            int insert=0;  
40.            //获取索引位置  
41.                int i=0;  
42.                int x=name.charAt(0)-'A';  
43.                for(int k=0;k<=x-1;k++){  
44.                 i+=location[k];  
45.                }  
46.                for(;i<list.size();i++){  
47.                String pre=list.get(i);  
48.                int len=pre.length()>name.length()? name.length():pre.length();  
49.                for(int j=0;j<len;j++){  
50.                    if(pre.charAt(j)>name.charAt(j)){  
51.                        bigger=1;  
52.                        break;  
53.                    }  
54.                    else if(pre.charAt(j)<name.charAt(j)){  
55.                        bigger=0;  
56.                        break;  
57.                    }  
58.                    else{  
59.                        bigger=2;  
60.                    }  
61.                }  
62.                if(bigger==1||(bigger==2&&(pre.length()>name.length()))){  
63.                    location[name.charAt(0)-'A']++;  
64.                    list.add(i,name);  
65.                    insert=1;  
66.                    break;  
67.                }  
68.            }  
69.            if(insert==0)list.add(name);  
70.  
71.        }  
72.        int sum=0;  
73.        int a='A'-1;  
74.        for(int i=0;i<list.size();i++){  
75.            String name=list.get(i);  
76.            int base=0;  
77.            for(int j=0;j<name.length();j++){  
78.                     base+=name.charAt(j)-a;  
79.            }  
80.             sum+=base*(i+1);  
81.        }  
82.        System.out.println(sum);  
83.        long end=System.currentTimeMillis();  
84.        System.out.println(end-start);  
85.  
86.    }  
87.  
88.} 

1.package com.yao;  
2.import java.io.BufferedReader;  
3.import java.io.File;  
4.import java.io.FileReader;  
5.import java.io.IOException;  
6.import java.util.Arrays;  
7.import java.util.LinkedList;  
8.import java.util.List;  
9./** 
10. * Created by IntelliJ IDEA. 
11. * User: shuimuqinghua77 
12. * Date: 12-3-13 
13. * Time: 下午9:04 
14. */  
15.public class Problem22 {  
16.    public static void main(String[] args) throws IOException {  
17.        File file=new File("C:\\Users\\Administrator\\Desktop\\names.txt");  
18.  
19.        ///home/yaoyao/template/names.txt  
20.        FileReader fr=new FileReader(file);  
21.        BufferedReader br=new BufferedReader(fr);  
22.        String namestxt=br.readLine();  
23.        br.close();  
24.        fr.close();  
25.        String[] names=namestxt.split("\",\"");  
26.        /*去除最后一个和第一个name的引号*/  
27.        names[0]=names[0].substring(1, names[0].length());  
28.        names[names.length-1]=names[names.length-1].substring(0,names[names.length-1].length()-1);  
29.        long start=System.currentTimeMillis();  
30.        Arrays.sort(names);  
31.    /*    *//**建立一个链表  以字典序列存储名字*//* 
32.        List<String> list=new LinkedList<String>(); 
33.        int[] location=new int[26]; 
34.        long start=System.currentTimeMillis(); 
35.        for(String name:names){ 
36.            if(list.size()==0){ 
37.                location[name.charAt(0)-'A']++; 
38.                list.add(name); 
39.                continue; 
40.            } 
41.            int bigger=0; 
42.            int insert=0; 
43.            //获取索引位置 
44.                int i=0; 
45.                int x=name.charAt(0)-'A'; 
46.                for(int k=0;k<=x-1;k++){ 
47.                 i+=location[k]; 
48.                } 
49.                for(;i<list.size();i++){ 
50.                String pre=list.get(i); 
51.                int len=pre.length()>name.length()? name.length():pre.length(); 
52.                for(int j=0;j<len;j++){ 
53.                    if(pre.charAt(j)>name.charAt(j)){ 
54.                        bigger=1; 
55.                        break; 
56.                    } 
57.                    else if(pre.charAt(j)<name.charAt(j)){ 
58.                        bigger=0; 
59.                        break; 
60.                    } 
61.                    else{ 
62.                        bigger=2; 
63.                    } 
64.                } 
65.                if(bigger==1||(bigger==2&&(pre.length()>name.length()))){ 
66.                    location[name.charAt(0)-'A']++; 
67.                    list.add(i,name); 
68.                    insert=1; 
69.                    break; 
70.                } 
71.            } 
72.            if(insert==0)list.add(name); 
73. 
74.        }*/  
75.        int sum=0;  
76.        int a='A'-1;  
77.        for(int i=0;i<names.length;i++){  
78.            String name=names[i];  
79.            int base=0;  
80.            for(int j=0;j<name.length();j++){  
81.                     base+=name.charAt(j)-a;  
82.            }  
83.             sum+=base*(i+1);  
84.        }  
85.        System.out.println(sum);  
86.        long end=System.currentTimeMillis();  
87.        System.out.println(end-start);  
88.  
89.    }  
90.  
91.}  


目录
相关文章
|
数据采集 机器学习/深度学习 人工智能
中文竞技场大模型测评-龙虎榜
本次测评选取写作创作相关、代码相关、知识常识、中文游戏、人类价值观、NLP专业领域6大场景和20个细分维度,分别对通义Qwen-Chat-7B、凤凰Phoenix-7B、ChatGLM2-6B、moss-moon-003-sft等大模型进行了超过 200+ 道题的评测。测评旨在为大家提供有关这些模型在不同领域和维度上的表现,更好地选择适合自己需求的模型和应用,期待这次测评能够为AI模型领域的学习和研究提供有价值的参考和指导。
70363 5
|
人工智能 vr&ar
VR技术、特点、应用领域简介
VR技术、特点、应用领域简介
824 1
|
机器学习/深度学习 人工智能 自然语言处理
【专栏】Python在人工智能领域的应用现状、优势及未来趋势
【4月更文挑战第27天】本文探讨了Python在人工智能领域的应用现状、优势及未来趋势。Python作为数据科学、机器学习、深度学习和自然语言处理的首选语言,拥有丰富的库如NumPy、Pandas、TensorFlow和NLTK等。其简洁易学、跨平台和活跃社区等特点促进了AI的普及和发展。未来,Python将在强化深度学习、融合新兴技术、提高可解释性和人才培养等方面持续发挥关键作用。
2899 2
|
自然语言处理 数据可视化 搜索推荐
构建一个基于通义千问的智能客服系统
公司开发一个智能客服系统,帮助用户快速找到他们需要的商品信息、解决问题,并提供个性化的购物建议。系统需要能够处理大量的用户提问,并以自然语言的形式给出准确的回答。
805 1
|
编解码 监控 Android开发
Pico Neo 3教程☀️ 四、开发者工具:实时监控工具(Metrics Tool)
Pico Neo 3教程☀️ 四、开发者工具:实时监控工具(Metrics Tool)
|
机器学习/深度学习 人工智能 自然语言处理
国内怎么使用Gemini ?gemini使用经验分享!
Gemini,是Google潜心研发的划时代大型语言模型(LLM),它如同一位博学多才的语言大师,精通文本生成、翻译、摘要和对话生成等多种自然语言处理任务。作为Google AI皇冠上的明珠,Gemini融合了尖端的科研成果和技术,将自然语言处理的准确性和效率提升到前所未有的高度。
|
网络协议
【每日一记】OSPF卡在2-way状态、OSPF卡在Exstart状态解析
【每日一记】OSPF卡在2-way状态、OSPF卡在Exstart状态解析
1425 1
|
测试技术 开发工具 芯片
Open Chip Community (OCC)
Open Chip Community (OCC) 是一个开源芯片社区,旨在推动开源芯片的发展和普及。OCC 的目标是为开发人员提供一个开放透明的平台,让他们可以共同协作、创新和分享开源芯片技术。
1009 3
|
数据可视化
不懂电脑也能自己重装系统,可视化傻瓜式一键重装系统不求人!!!
不懂电脑也能自己重装系统,可视化傻瓜式一键重装系统不求人!!!