请问如何在aardio编程语言中根据TWGRB规则对字符串WTGBR和字符串RGB排序

uolian 12天前 156

请问如何在aardio编程语言中根据TWGRB规则对字符串WTGBR和字符串RGB排序,这个程序报错如下?请大佬指导一下!谢谢

// 定义 TWGRB 规则的优先级
var priority = {
    T = 1;
    W = 2;
    G = 3;
    R = 4;
    B = 5;
}

// 自定义排序函数
function compare(a, b) {
    var aPriority = priority[a] || 6; // 如果字符不在优先级表中,则赋予最低优先级
    var bPriority = priority[b] || 6;
    return aPriority - bPriority;
}

// 对字符串进行排序
function sortByTWGRB(str) {
    var arr = string.split(str, ""); // 将字符串拆分为字符数组
    table.sort(arr, compare); // 使用自定义排序函数对数组进行排序
    return table.concat(arr, ""); // 将排序后的字符数组重新组合为字符串
}

// 测试
var str1 = "WTGBR";
var str2 = "RGB";

var sortedStr1 = sortByTWGRB(str1);
var sortedStr2 = sortByTWGRB(str2);

console.log("排序后的字符串1:", sortedStr1); // 输出: TWRGB
console.log("排序后的字符串2:", sortedStr2); // 输出: RGB


上传的附件:
最新回复 (7)
  • 光庆 12天前
    1 2
    import console; 
    
    // 对字符串进行排序,能过滤重复字符
    function sortByTWGRB(str) {
        var priority = {"T","W","G","R","B"};
        for(i=#priority,1,-1){
            if !..string.indexOf(str,priority[i]) ..table.remove(priority,i);
        }
        return ..string.join(priority); 
    }
    
    // 测试
    var str1 = "WTGBR";
    var str2 = "RGB";
    var str3 = "WTGBRWTGBRWTGBRWTGBR";
    
    var sortedStr1 = sortByTWGRB(str1);
    var sortedStr2 = sortByTWGRB(str2);
    var sortedStr3 = sortByTWGRB(str3);
    
    console.log("排序后的字符串1:", sortedStr1); // 输出: TWRGB
    console.log("排序后的字符串2:", sortedStr2); // 输出: RGB
    console.log("排序后的字符串3:", sortedStr3); // 输出: TWRGB
    
    console.pause();


  • 光庆 12天前
    1 3
    import console; 
    
    var priority = {
        T = 1;
        W = 2;
        G = 3;
        R = 4;
        B = 5;
    }
    
    // 对字符串进行排序,能过滤重复字符
    function sortByTWGRB(str) {
        var s = {"","","","",""};
        for(i=1,#str,1){
            s[priority[str[[i]]]] = str[[i]];
        }
        return ..string.join(s); 
    }
    
    // 测试
    var str1 = "WTGBR";
    var str2 = "RGB";
    var str3 = "WTGBRWTGBRWTGBRWTGBR";
    
    var sortedStr1 = sortByTWGRB(str1);
    var sortedStr2 = sortByTWGRB(str2);
    var sortedStr3 = sortByTWGRB(str3);
    
    console.log("排序后的字符串1:", sortedStr1); // 输出: TWRGB
    console.log("排序后的字符串2:", sortedStr2); // 输出: RGB
    console.log("排序后的字符串3:", sortedStr3); // 输出: TWRGB
    
    console.pause();


  • 光庆 12天前
    1 4
    import console; 
    
    var priority = {
        T = 1;
        W = 2;
        G = 3;
        R = 4;
        B = 5;
    }
    
    // 对字符串进行排序,不能过滤重复字符
    function sortByTWGRB(str) {
    	var s = ..string.split(str,"");
    	..table.sort(s,λ(b)priority[owner]<priority[b]);
    	return ..string.join(s); 
    }
    
    // 测试
    var str1 = "WTGBR";
    var str2 = "RGB";
    var str3 = "WTGBRWTGBRWTGBRWTGBR";
    
    var sortedStr1 = sortByTWGRB(str1);
    var sortedStr2 = sortByTWGRB(str2);
    var sortedStr3 = sortByTWGRB(str3);
    
    console.log("排序后的字符串1:", sortedStr1); // 输出: TWRGB
    console.log("排序后的字符串2:", sortedStr2); // 输出: RGB
    console.log("排序后的字符串3:", sortedStr3); // 输出: TTTTWWWWGGGGRRRRBBBB
    
    console.pause();


  • uolian 12天前
    0 5
    谢谢光庆老师, 一下子给解决了问题, 十分感谢! 这3个例子在最新版本里运行都很好, 在老版本的aardio里第一二个程序报错.错误行号:#6 文件:[string "import console; ..."] 预期:靠近
  • 光庆 12天前
    1 6
    import console; 
    
    var priority = {
        T = 1;
        W = 2;
        G = 3;
        R = 4;
        B = 5;
    }
    
    // 对字符串进行排序,能过滤重复字符
    function sortByTWGRB(str) {
        var s = ..string.split(str,"");
        ..table.sort(s,λ(b)priority[owner]<priority[b]);
        return ..string.join(table.unique(s)); 
    }
    
    // 测试
    var str1 = "WTGBR";
    var str2 = "RGB";
    var str3 = "WTGBRWTGBRWTGBRWTGBR";
    
    var sortedStr1 = sortByTWGRB(str1);
    var sortedStr2 = sortByTWGRB(str2);
    var sortedStr3 = sortByTWGRB(str3);
    
    console.log("排序后的字符串1:", sortedStr1); // 输出: TWRGB
    console.log("排序后的字符串2:", sortedStr2); // 输出: RGB
    console.log("排序后的字符串3:", sortedStr3); // 输出: TWRGB
    
    console.pause();


  • 光庆 12天前
    1 7
    uolian 谢谢光庆老师, 一下子给解决了问题, 十分感谢! 这3个例子在最新版本里运行都很好, 在老版本的aardio里第一二个程序报错.错误行号:#6 文件:[string "import con ...
    for循环里的参数分隔符,老版本只能用分号,新版本改为可以用逗号了。应该就是这个原因。
  • uolian 12天前
    0 8
    谢谢光庆老师的回复, 看来就是这个原因, 给您点赞
返回
发新帖