字典序最大子序列

题目.jpg
       <script>
            function fn(str){
                var arr = str.split("");
                alert(arr);
                var arr1 = [];
                var arr2 = [];
                var str ={};
                for(var i=0;i<arr.length;i++){
                    var sum="";
                    for(var j=i;j<arr.length;j++){
                        if(i!=j){
                            str=arr[i]+arr[j];
                            arr1.push(str);
                        }
                        console.log(arr1);
                        sum = sum+arr[j];
                        arr2.push(sum);
                        console.log(arr2);  
                    }
                }
            arr2=arr1.concat(arr2);
            console.log(arr2);
            arr2=arr2.sort();
            alert(arr2[arr2.length-1]); 
            }
            fn("test");
        </script>
穷举法,有点浪费空间和时间,但是,比较容易理解;
首先,将传入的字符串分割成数组,然后架构一个两层循环,有两种字串截取方式,第一种,就是当i不等于j时,令 str=arr[i]+arr[j];放入数组arr1,如例子“test”,即将字串te,ts,tt,es,et,st放入数组arr1中,第二种, 就是将字符串连接拼接,中间无相隔,sum = sum+arr[j];放入数组arr2中。即字符串t,te,tes,test,e,es,est,s,st,t;然后用concat数组连接,将他们连接成一个数组,用sort排序将字符串排序,也就是它的字典序,返回排序后的数组的最后一个值,也就是字典序的最大子序列,完成题目。

emmmm。。。。。。我暂时只能想出来这个方法,如果以后有看到好的方法,会再来补充,加油!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 9,614评论 2 13
  • FCC:GitHub - FreeCodeCamp/FreeCodeCamp: The https://FreeC...
    不要吧我再睡会阅读 5,366评论 4 8
  • 当她没说让我去等她,也不同意我去等她,再这种情况下,一般我是心里先受挫,然后断然不会去滴!现在我明白这是我的...
    未央行者阅读 1,742评论 0 0
  • 这是我采访的战友:刘鹏志,宜昌人在东莞。一个充满正能量,爱思考有闯劲的帅哥。 他个人的公众号是《一志在说》,这里记...
    王呦鹿阅读 2,981评论 0 0

友情链接更多精彩内容