• 查找根字符串


    一个字符串数组,{,a,b,1,110,111,13,2,23,22,23442,2645,345,34567,34,3487,5643,64545454,56457,7654564}

    写一个函数,返回结果为{1,2,34,5643,64545454,56457,7654564}

    规律,数字判断,如果一个数字包含另一个数字,返回较小的字符串,比如,123,12 则返回12


    //参数是数组
    function findRealCode(str) {
    var arry = new Array();
    var m = 0;
    var at= new Array();//返回的
    arry = Narry(str);//排出非数字字符
    var ln = findLength(arry);//最大长度,可以循环这么多次
    for (var k = 0; k < ln; ) {
    var n = 0;//作为数组自增变量
    var sm0 = findSmall(arry);// 取得最小位数的元素
    var temp = new Array(); // 参数组,用于迭代
    k = findLength(sm0);//本次元素的长度
    for (var i = 0; i < sm0.length; i++) {//把最小的元素放到返回数组中
    at[m] = sm0[i];
    m++;
    }
    for (var j = 0; j < arry.length; j++) {
    var a = 0;
    for (var i = 0; i < sm0.length; i++) {
    if (arry[j].indexOf(sm0[i]) == -1 && arry[j].length != sm0[i].length) {//不包含
    a++;//不包含就加1
    } else {
    break;
    }
    }
    if (a == sm0.length) {//该元素不包含最小元素数组就存入参数组
    temp[n] = arry[j];
    n++;
    }
    }
    if (temp.length == 0) {//如果参数组没有数据了,说明已经迭代完所有的元素了
    break;
    }
    arry = temp;//传入迭代数组,进行下一次迭代
    }
    return at;

    }
    //获取数组中字符串最大长度
    function findLength(str) {

    var len = 0;
    for (var i = 0; i < str.length; i++) {
    if (IsNum(str[i])) {
    if (len < str[i].length) {
    len = str[i].length;
    }
    }
    }
    return len;

    }
    //获取数组中字符串最小长度的字符串数组,可能有多个字符串长度相等的元素
    function findSmall(str) {

    var len = str[0];
    for (var i = 0; i < str.length; i++) {//先找到其中一个
    if (IsNum(str[i])) {
    if (len.length > str[i].length) {
    len = str[i];
    }
    }
    }
    var arr = new Array();
    var n = 0;
    arr[n] = len;
    n++;
    for (var i = 0; i < str.length; i++) {
    if (IsNum(str[i])) {
    if (len.length == str[i].length && len != str[i]) {
    arr[n] = str[i];
    n++;
    }
    }
    }
    return arr;

    }
    //判断一个小字符串是否与第二个大字符串前段一一匹配,s1是小字符串s2是大字符串
    function IsContain(s1, s2) {
    var l = 0;
    for (var i = 0; i < s1.length; i++) {
    if (s1[i] != s2[i]) {
    return false;
    } else {
    l++;
    }
    }
    if (l == s1.length) {
    return true;
    }
    }
    //判断字符串是否为纯数字
    function IsNum(str) {
    var r = /^d+$/;
    if (r.test(str)) {
    return true;
    } else {
    return false;
    }
    }
    //排出其他字符,只保留数字
    function Narry(str) {
    var arr = new Array();
    var n = 0;
    for (var i = 0; i < str.length; i++) {
    if (IsNum(str[i])) {
    arr[n] = str[i];
    n++;
    }
    }
    return arr;
    }

  • 相关阅读:
    计算某一日期是在一年中第几周
    动态生成web表-asp.net table
    sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据
    循环取月的三位英语名 Jan Feb
    Python面向对象编程
    算法
    UDP Sockets in C#
    C++ 11
    GNU Make
    C++ 11
  • 原文地址:https://www.cnblogs.com/bingg0/p/6223103.html
Copyright © 2020-2023  润新知