你的位置:首页 > 软件开发 > Java > 一个精妙的解决方案并非对于所有语言都是最优解

一个精妙的解决方案并非对于所有语言都是最优解

发布时间:2015-03-24 20:00:37
今天无意间看到一篇文章(http://www.vaikan.com/google-interviewing-story/),看到里面有道面试题的算法挺有意思的。问题是这样的:假设这有一个各种字母组成的字符串,假设这还有另外一个字符串,而且这个字符串里的字母数相对少一些。从算法是讲 ...

 今天无意间看到一篇文章(http://www.vaikan.com/google-interviewing-story/),看到里面有道面试题的算法挺有意思的。问题是这样的:

var compareString = function(str1, str2) {  var i,    j,    flag,    length;  //长的字符串每个字母相乘  for (i = 0, j = 1, length = str1.length; i < length; i++) {    //相乘结果大于2的53次方时,设置新的属性值result+j来统计结果    if (resultObject['result' + j] * numObject[str1.substr(i, 1)] > Math.pow(2, 53)) {      j++;      resultObject['result' + j] = 1;    }    resultObject['result' + j] *= numObject[str1.substr(i, 1)];  }  //结果除以短的字符串的每个字母  for (i = 0, length = str2.length; i < length; i++) {    flag = 0;    for (var z in resultObject) {      if (resultObject[z] % numObject[str2.substr(i, 1)] === 0) {        flag = 0;        break;      } else {        flag = 1;      }    }    if (flag == 1) {      console.log("str2中的第" + (i + 1) + "个字母不存在str1中");      break;    } else if (flag == 0 && i == length - 1) {      console.log("str2中的字母str1均存在");    }  }};

原标题:一个精妙的解决方案并非对于所有语言都是最优解

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录