`
mybwu_com
  • 浏览: 178487 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Name Count -- Javascript 实现

 
阅读更多


问题描述:

Usingnames.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.

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.

What is the total of all the name scores in the file?

由于题目的names.txt文件比较大,这里只列举几个数据作为测试:

1. 快排

2.计算姓名的分数

(function(){


//*********************data*************************


var data = new Array("MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA");



//***************************************************




var nameScore = function score(name,multiply){
var s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sc = 0;
for(var i = 0; i < name.length;i++)
{
var c = name[i].toUpperCase();
var idx = name.indexOf(c);
if(idx < 0) {console.log("invalid name format !!!");return ;}
sc += idx + 1;
}
return sc * multiply;
}


var sort = function quick(left,right,depth){
if (left>= right) return;  
                
            var refNum= data[left];  
            var low =left;  
            var high =right;  
   
            while (low< high)  
            {  
                while(low < high && data[high] >= refNum)  
                   high--;  
                if(low < high)  
                   data[low++] = data[high];  
   
                while(low < high && data[low] < refNum)  
                   low++;  
                if(low < high)  
		   data[high--] = data[low];  
            }  
            data[low] =refNum;  
   
           quick(left,right - 1);  
           quick(left + 1,right);  
}


sort(0,data.length-1,1);
for(var i = 0 ;i < data.length;i++)
console.log("name : " + data[i] + ", score : " + nameScore(data[i],i+1));

})();




分享到:
评论

相关推荐

    addon-download-count-fetcher:减少CurseForge和WowInterface的插件下载数量

    减少CurseForge和WowInterface的插件下载计数,类似于wow-scrape-addon-download-count,但具有更多选项。 它是什么? 这是带有CLI的Node.JS脚本,可让您从一个或多个魔兽世界插件中快速获取当前下载计数,这些插件...

    count-docula:基于mdast的工具,用于生成和测试文档

    Count Docula添加了三个指令,这些指令采用空的内联链接的形式,如下所示: [](!import "./path/doc.md" as filename) [](!anchor my-anchor-name) [](!export my-anchor-name) 伪指令用于声明对其他文档的依赖...

    corona-count-down:针对在全国范围内封锁期间无法看到我的人,next.js入门项目已转换为倒计时

    这是一个基于的倒计时网页,用于南非covid-19相关的锁定。 通过更改index.js中的这些变量来自定义链接和名称 let name = 'Your Name' let instagramURL = '...运行开发服务器: npm run dev# oryarn dev 使用浏览

    表单验证大全

    if (document.form.count.value &gt; 100 || document.form.count.value ) { alert&#40;"输入数值不能小于零大于100!"&#41;; document.form.count.focus(); return false; } if (document.form.MESSAGE.value.length) ...

    weapp.qrcode.js

    // QRCode for JavaScript // // Copyright (c) 2009 Kazuhiko Arase // // URL: http://www.d-project.com/ // // Licensed under the MIT license: // http://www.opensource.org/licenses/mit-license.php // // ...

    eclipse-testng 离线包下载

    &lt;xsl:output name="xhtml" method="xhtml" indent="yes" omit-xml-declaration="yes"/&gt; name="testNgXslt.outputDir"/&gt; &lt;xsl:param name="testNgXslt.cssFile"/&gt; &lt;xsl:param name="testNgXslt....

    js验证表单 js验证表单

    if (document.form.count.value &gt; 100 || document.form.count.value ) { alert("输入数值不能小于零大于100!"); document.form.count.focus(); return false; } if (document.form.MESSAGE.value.length) { alert...

    【JavaScript源代码】Vue 事件的$event参数=事件的值案例.docx

    data="dataList"&gt; &lt;el-table-column label="id" prop="id"&gt;&lt;/el-table-column&gt; &lt;el-table-column label="name" prop="name"&gt; &lt;template v-slot="props"&gt; &lt;el-input-number :min="0" v-model="props.row.count...

    React-Redux-Boilerplate

    name: "counter", initialState: { count: 0, }, reducers: { increment: (state, action) =&gt; { state.count += action.payload.change; }, decrement: (state, action) =&gt; { state.count -= action.payl

    正则表达式

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    counter-js:计数器API Javascript库

    计数器API Javascript库 在查看我们的文档。 如何使用 按名称增加 import { CounterAPI } from "counterapi" ; const counter = new CounterAPI ( ) ; counter . up ( "test" ) . then ( ( res ) =&gt; { console . ...

    torus:[实验性]通过CLI操作CircleCI REST API

    圆环面 通过CLI操作CircleCI REST API 这是实验模块。 安装 npm install -g torus 用法 设置API令牌 首先,您应该获取。 然后通过以下方式设置此令牌... Build count, default is 30, max is 100 --offset, -o Def

    MongoDB的JavaScript驱动Narwhal.zip

    "name" : "MongoDB", "type" : "database", "count" : 1, "info" : { x : 203, y : 102 } } coll.insert(doc) myDoc = coll.findOne(); print(myDoc); // Now, lets add lots of little documents to the ...

    JS分页效果JS分页效果

    if (this.pageCount &gt;= startPage + 10) strHtml += '&lt;span title="Next 10 Pages"&gt;&lt;a href="javascript:' + this.name + '.toPage(' + (startPage + 10) + ');"&gt;...&lt;/a&gt;&lt;/span&gt;'; if (nextPage &gt; this....

    six-speed:ES6 polyfill与功能性能测试

    npm run profile:node -- --testName=$name --type=$type --count=$iterationCount 在当前节点环境中分析给定的测试。 类型可能是以下之一: 巴别塔 babel运行时 巴别岛 打字稿 es5 es6 npm run build 将测试...

    fso浏览54646465465464564

    &lt;tr&gt;&lt;td align=right&gt;类型:&lt;/td&gt;&lt;td&gt;&lt;input type="radio" name="ntype" checked value="0"&gt;文件夹 &lt;input type="radio" name="ntype" value="1"&gt;文件 &lt;tr&gt;&lt;td align=right&gt;名称: &lt;input type="text" size="40" ...

    lolcat-css-properties:Lolcat CSS属性

    Lolcat CSS属性 整体CSS属性翻译为Lolcat ... 'animation-iteration-count': 'animashun-iterashun-count' 'animation-name': 'animashun-naym' 'animation-play-state': 'animashun-pulay-state' 'animation-timing

    JavaScript实现动态增加文件域表单

    js代码: 代码如下:[removed] //全局变量,代表文件域的个数,并用该变量区分文件域的name属性 var file_count = 0; //增加文件 域 function additem(id) { if (file_count &gt; 9) { alert&#40;“最u22810 10个u25991 ...

    access-log-counter:Apache访问日志流量计数器。 按日志日期汇总。 此代码特定于我们的日志格式。 您可以根据需要自由修改

    可以通过--log-dir命令行参数提供另一个文件夹,例如: node count-traffic.js --log-dir=/some/other/path 该脚本将不处理*.gz文件,以避免过多的内存消耗。 如果找到文件夹,它将扫描其中的所有文件。 它将计算...

Global site tag (gtag.js) - Google Analytics