0
看到所有人在Python中按照字母顺序讨论最长的子字符串,我决定在JS中尝试它。 函数应该查找给定字符串中最长的子字符串,其中字母按字母顺序排列。字母顺序中最长的子字符串Javascript
以下是我有:
var s = 'azcbobobegghakl'
function substringChecker(s) {
\t var longestSub = "";
\t for (var i = 0; i < s.length; i++) {
\t \t var count = 0;
\t \t var currSub = "";
\t \t while((i+count)<=s.length){
\t \t \t var curr = i+count;
\t \t \t var next = curr+1;
\t \t \t var prev = curr-1;
\t \t \t if(curr !== s.length-1) {
\t \t \t \t if(s[curr] <= s[next]){
\t \t \t \t \t currSub += s[curr]
\t \t \t \t } else {
\t \t \t \t \t break;
\t \t \t \t }
\t \t \t } else {
\t \t \t \t if(s[curr]>s[prev]) {
\t \t \t \t \t currSub += s[curr];
\t \t \t \t }
\t \t \t }
\t \t count++;
\t \t }
\t \t if(currSub.length >= longestSub.length) {
\t \t \t longestSub = currSub;
\t \t }
\t };
\t return longestSub;
}
var result = substringChecker(s);;
console.log(result);
它所有的测试情况下,我能想出的伟大工程的有趣的事情,但是这一次。结果应该是“乞讨”,而不是“乞丐”。为什么不显示,我错过了什么?
其中“所有的人”你的意思是,你可以分享一个链接到该蟒蛇话题?我发现的唯一一个是从2013年开始的。 – Bergi
WTH是否将该循环中的当前字符与前一个字符和下一个字符进行比较?你可能想尝试简化它。 – Bergi
问题在于,如果它正在检查下一个字符,如果它仍然按字母顺序排列,但存储当前字符,所以您将始终错过最长字符串的最后一个字符(*除非它以原始*的最后一个字符结尾) 。但@Oriol [answer](http://stackoverflow.com/a/30967138)是一个更好的方法。 –