遍历9个格子winmine!StepBlock和遍历8个格子winmine!StepBox的对决

news2024/9/29 1:31:01

遍历9个格子winmine!StepBlock和遍历8个格子winmine!StepBox的对决

第一部分:windbg调试记录。

0: kd> g
Breakpoint 10 hit
winmine!DoButton1Up:
001b:0100390e a130510001      mov     eax,dword ptr [winmine!xCur (01005130)]
0: kd> kc
 #
00 winmine!DoButton1Up
01 winmine!MainWndProc
02 USER32!InternalCallWinProc
03 USER32!UserCallWinProcCheckWow
04 USER32!DispatchMessageWorker
05 USER32!DispatchMessageW
06 winmine!WinMain
07 winmine!WinMainCRTStartup
08 kernel32!BaseProcessStart
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
1: kd> u
winmine!StepBox [d:\srv03rtm\shell\osshell\ep\winmine\rtns.c @ 254]:
010031aa 55              push    ebp
010031ab 8bec            mov     ebp,esp
010031ad 53              push    ebx
010031ae ff750c          push    dword ptr [ebp+0Ch]
010031b1 33db            xor     ebx,ebx
010031b3 ff7508          push    dword ptr [ebp+8]
010031b6 43              inc     ebx
010031b7 891db8570001    mov     dword ptr [winmine!iStepMac (010057b8)],ebx
1: kd> pc
winmine!StepBox+0x13:
001b:010031bd e86cffffff      call    winmine!StepXY (0100312e)
1: kd> t
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
1: kd> dv
              x = 0n1
              y = 0n6
         cBombs = 0n6
1: kd> kc
 #
00 winmine!StepXY
01 winmine!StepBox
02 winmine!StepBlock
03 winmine!DoButton1Up
04 winmine!MainWndProc
05 USER32!InternalCallWinProc
06 USER32!UserCallWinProcCheckWow
07 USER32!DispatchMessageWorker
08 USER32!DispatchMessageW
09 winmine!WinMain
0a winmine!WinMainCRTStartup
0b kernel32!BaseProcessStart
1: kd> g
Breakpoint 18 hit
winmine!DisplayBlk:
001b:01002744 55              push    ebp
1: kd> gu
winmine!StepXY+0x4a:
001b:01003178 837d0c00        cmp     dword ptr [ebp+0Ch],0
0: kd> dv
              x = 0n1
              y = 0n1
         cBombs = 0n1
0: kd> h
       ^ Syntax error in 'h'
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n6
0: kd> kc
 #
00 winmine!StepBox
01 winmine!StepBlock
02 winmine!DoButton1Up
03 winmine!MainWndProc
04 USER32!InternalCallWinProc
05 USER32!UserCallWinProcCheckWow
06 USER32!DispatchMessageWorker
07 USER32!DispatchMessageW
08 winmine!WinMain
09 winmine!WinMainCRTStartup
0a kernel32!BaseProcessStart
0: kd> y
       ^ Syntax error in 'y'
0: kd> u
winmine!StepBox [d:\srv03rtm\shell\osshell\ep\winmine\rtns.c @ 254]:
010031aa 55              push    ebp
010031ab 8bec            mov     ebp,esp
010031ad 53              push    ebx
010031ae ff750c          push    dword ptr [ebp+0Ch]
010031b1 33db            xor     ebx,ebx
010031b3 ff7508          push    dword ptr [ebp+8]
010031b6 43              inc     ebx
010031b7 891db8570001    mov     dword ptr [winmine!iStepMac (010057b8)],ebx
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n6
         cBombs = 0n6
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n3
              y = 0n6
0: kd> p
winmine!StepBox+0x4:
001b:010031ae ff750c          push    dword ptr [ebp+0Ch]
0: kd> p
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n3
              y = 0n6
         cBombs = 0n6
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n1
              y = 0n7
0: kd> p
winmine!StepBox+0x4:
001b:010031ae ff750c          push    dword ptr [ebp+0Ch]
0: kd> p
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n1
              y = 0n7
         cBombs = 0n7
0: kd> g
Breakpoint 18 hit
winmine!DisplayBlk:
001b:01002744 55              push    ebp
0: kd> gu
winmine!StepXY+0x4a:
001b:01003178 837d0c00        cmp     dword ptr [ebp+0Ch],0
0: kd> dv
              x = 0n1
              y = 0n0
         cBombs = 0n0
0: kd> gu
winmine!StepBox+0x18:
001b:010031c2 391db8570001    cmp     dword ptr [winmine!iStepMac (010057b8)],ebx
0: kd> u
winmine!StepBox+0x18 [d:\srv03rtm\shell\osshell\ep\winmine\rtns.c @ 262]:
010031c2 391db8570001    cmp     dword ptr [winmine!iStepMac (010057b8)],ebx
010031c8 7470            je      winmine!StepBox+0x90 (0100323a)
010031ca 56              push    esi
010031cb 57              push    edi
010031cc 8b349de0570001  mov     esi,dword ptr winmine!rgStepY (010057e0)[ebx*4]
010031d3 8b3c9dc0510001  mov     edi,dword ptr winmine!rgStepX (010051c0)[ebx*4]
010031da 4e              dec     esi
010031db 8d47ff          lea     eax,[edi-1]
0: kd> p
winmine!StepBox+0x22:
001b:010031cc 8b349de0570001  mov     esi,dword ptr winmine!rgStepY (010057e0)[ebx*4]
0: kd> dv
              x = 0n1
              y = 0n7
0: kd> d winmine!rgStepX[1]
0: kd> dt winmine!rgStepX[1]
[1] 0n1
0: kd> dt winmine!rgStepY[1]
[1] 0n7
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n0
              y = 0n6
         cBombs = 0n6
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n1
              y = 0n6
         cBombs = 0n6
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> fv
Couldn't resolve error at 'v'
0: kd> dv
              x = 0n2
              y = 0n6
         cBombs = 0n6
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n0
              y = 0n7
         cBombs = 0n7
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n7
         cBombs = 0n7
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n0
              y = 0n8
         cBombs = 0n8
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n1
              y = 0n8
         cBombs = 0n8
0: kd> g
Breakpoint 18 hit
winmine!DisplayBlk:
001b:01002744 55              push    ebp
0: kd> dv
              x = 0n1
              y = 0n8
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n8
         cBombs = 0n8
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n7
0: kd> kc
 #
00 winmine!StepBox
01 winmine!StepBlock
02 winmine!DoButton1Up
03 winmine!MainWndProc
04 USER32!InternalCallWinProc
05 USER32!UserCallWinProcCheckWow
06 USER32!DispatchMessageWorker
07 USER32!DispatchMessageW
08 winmine!WinMain
09 winmine!WinMainCRTStartup
0a kernel32!BaseProcessStart
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n7
         cBombs = 0n7
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n3
              y = 0n7
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n3
              y = 0n7
         cBombs = 0n7
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n1
              y = 0n8
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n1
              y = 0n8
         cBombs = 0n8
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n8
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n2
              y = 0n8
         cBombs = 0n8
0: kd> g
Breakpoint 12 hit
winmine!StepBox:
001b:010031aa 55              push    ebp
0: kd> dv
              x = 0n3
              y = 0n8
0: kd> g
Breakpoint 15 hit
winmine!StepXY:
001b:0100312e 55              push    ebp
0: kd> dv
              x = 0n3
              y = 0n8
         cBombs = 0n8
0: kd> g
Breakpoint 14 hit
winmine!DrawButton:
001b:010029e2 55              push    ebp

第二部分:解释和代码


++i 返回加1后的值,碰到X1Y7cBombs等于0,
所以++iStepMac等于2
        if (++iStepCur != iStepMac)
成立
所以会遍历8个格子。

其他情况iStepMac等于1,++iStepCur等于1,
直接返回了。
所以会到X1Y7的时候会遍历8个格子。
X0Y6  X1Y6 X2Y6
X0Y7        X3Y7
X0Y8 X1Y8 X2Y8
返回,继续遍历第五个格子X2Y7

/****** S T E P  X Y ******/

VOID StepXY(INT x, INT y)
{
        INT cBombs;
        INT iBlk = (y<<5) + x;
        BLK blk = rgBlk[iBlk];

        if ( (blk & MaskVisit) ||
                  ((blk &= MaskData) == iBlkMax) ||
                  (blk == iBlkBombUp) )
                return;

        cBoxVisit++;
        rgBlk[iBlk] = (CHAR) (MaskVisit | (cBombs = CountBombs(x,y)));

//
//      SetDIBitsToDevice(hDCCapture,
//              (x<<4)+(dxGridOff-dxBlk), (y<<4)+(dyGridOff-dyBlk),
//              dxBlk, dyBlk, 0, 0, 0, dyBlk,
//              lpDibBlks + rgDibOff[cBombs],
//              (LPBITMAPINFO) lpDibBlks, DIB_RGB_COLORS);
//
        DisplayBlk(x,y);

        if (cBombs != 0)
                return;

        rgStepX[iStepMac] = x;
        rgStepY[iStepMac] = y;

        if (++iStepMac == iStepMax)
                iStepMac = 0;
}


/****** S T E P  B O X ******/

VOID StepBox(INT x, INT y)
{
        INT iStepCur = 0;

        iStepMac = 1;


        StepXY(x,y);

        if (++iStepCur != iStepMac)

                while (iStepCur != iStepMac)
                        {
                        x = rgStepX[iStepCur];
                        y = rgStepY[iStepCur];

                        StepXY(x-1, --y);
                        StepXY(x,   y);
                        StepXY(x+1, y);

                        StepXY(x-1, ++y);
                        StepXY(x+1, y);

                        StepXY(x-1, ++y);
                        StepXY(x,   y);
                        StepXY(x+1, y);

                        if (++iStepCur == iStepMax)
                                iStepCur = 0;
                        }


}


/****** S T E P  B L O C K ******/

/* Step in a block around a single square */

VOID StepBlock(INT xCenter, INT yCenter)
{
        REGISTER INT    x;
        REGISTER INT    y;
        BOOL fGameOver = fFalse;

        if (  (!fVISIT(xCenter,yCenter))
/*                      || fGUESSBOMB(xCenter,yCenter) */
                        || (iBLK(xCenter,yCenter) != CountMarks(xCenter,yCenter)) )
                                {
                                /* not a safe thing to do */
                                TrackMouse(-2, -2);     /* pop up the blocks */
                                return;
                                }

        for(y=yCenter-1; y<=yCenter+1; y++)
                for(x=xCenter-1; x<=xCenter+1; x++)
                        {
                        if (!fGUESSBOMB(x,y) && fISBOMB(x,y))
                                {
                                fGameOver = fTrue;
                                ChangeBlk(x, y, MaskVisit | iBlkExplode);
                                }
                        else
                                StepBox(x,y);
                        }

        if (fGameOver)
                GameOver(fLose);
        else if (fCheckWin())
                GameOver(fWin);
}

第三部分:关键数组


0: kd> db winmine!rgBlk
01005360  10 10 10 10 10 10 10 10-10 10 10 0f 0f 0f 0f 0f  ................
01005370  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
01005380  10 0f 0f 8f 41 40 40 40-40 40 10 0f 0f 0f 0f 0f  ....A@@@@@......
01005390  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
010053a0  10 0f 8f 0f 41 41 41 41-40 40 10 0f 0f 0f 0f 0f  ....AAAA@@......
010053b0  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
010053c0  10 0f 0f 0f 41 41 8e 41-40 40 10 0f 0f 0f 0f 0f  ....AA.A@@......
010053d0  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
0: kd> db
010053e0  10 8f 0f 8f 42 41 41 41-40 40 10 0f 0f 0f 0f 0f  ....BAAA@@......
010053f0  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
01005400  10 0f 8f 8f 43 40 40 40-40 40 10 0f 0f 0f 0f 0f  ....C@@@@@......
01005410  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
01005420  10 41 43 8e 42 40 40 40-40 40 10 0f 0f 0f 0f 0f  .AC.B@@@@@......        第六行
01005430  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
01005440  10 40 41 41 41 40 40 40-40 40 10 0f 0f 0f 0f 0f  .@AAA@@@@@......    第七行    
01005450  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
0: kd> db
01005460  10 41 41 40 41 41 41 40-40 40 10 0f 0f 0f 0f 0f  .AA@AAA@@@......        第八行
01005470  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
01005480  10 8f 41 40 41 8f 41 40-40 40 10 0f 0f 0f 0f 0f  ..A@A.A@@@......        第九行
01005490  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................
010054a0  10 10 10 10 10 10 10 10-10 10 10 0f 0f 0f 0f 0f  ................            
010054b0  0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f  ................

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2168407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于JAVA+SpringBoot+Vue的健身房管理系统1

基于JAVASpringBootVue的健身房管理系统1 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈喽…

element ui中当el-dialog需要做全屏时,.fullscreen样式修改问题

element ui 饿了么UI中el-dialog样式修改问题 场景解决方法就是&#xff1a;去掉底部样式中的scoped,然后再进行页面级样式的更改即可。 场景 最近在使用element-ui时&#xff0c;使用到了弹窗组件&#xff1a; element-ui 官网链接地址&#xff1a; element-ui 官网链接地址…

C语言指针系列1——初识指针

祛魅&#xff1a;其实指针这块儿并不难&#xff0c;有人说难只是因为基础到进阶没有处理好&#xff0c;大家要好好跟着一步一步学习&#xff0c;今天我们先来认识一下指针 指针定义&#xff1a;指针就是内存地址&#xff0c;指针变量是用来存放内存地址的变量&#xff0c;在同一…

Java线程的三大特性

原子性: 线程任务不可再分。 int i 1; i; 原子类 AtomicXXX 可见性: 线程之间的操作是互相不可见的。 volatile //线程A如果&#xff0c;flag为true&#xff0c;就运行打印语句 A: trueThread t1 new Thread(() -> {while (true) {if (flag) {System.out.println(&q…

卷积神经网络-迁移学习

文章目录 一、迁移学习1.定义与性质2.步骤 二、Batch Normalization&#xff08;批次归一化&#xff09;三、ResNet网络1.核心思想2.残差结构&#xff08;1&#xff09;残差块&#xff08;2&#xff09;残差结构类型 四、总结 一、迁移学习 迁移学习&#xff08;Transfer Lear…

zabbix基本概念与组件

文章目录 一、zabbix简介二、​​​​​​​zabbix构成三、​​​​​​​zabbix监控对象四、​​​​​​​zabbix常用术语五、 Zabbix 6.0 新特性1.Zabbix server高可用防止硬件故障或计划维护期的停机2.Kubernetes系统从多个维度采集指标 六、zabbix 工作原理1、主动模式2、…

操作配置笔记

一、检查&#xff1a; 1.查看当前配置 display current-configuration 2.查看路由表 display ip routing-table 3.查看当前配置情况 display this 4.查看当前设备版本 display version 5.查看接口 display interface display ip interface 6.查看保存的当前配置 display sav…

openinstall鸿蒙SDK再升级,功能全面支持HarmonyOS NEXT

万众期待的鸿蒙操作系统HarmonyOS NEXT即将发布&#xff0c;国产自主的全场景智能操作系统诞生&#xff0c;将为生态伙伴共创共享创造新蓝海&#xff0c;鸿蒙生态的加速构建&#xff0c;也有望催生出互联网生态的第三极。 作为首批鸿蒙生态伙伴&#xff0c;openinstall在App渠…

AR 眼镜之-蓝牙电话-来电铃声与系统音效

目录 &#x1f4c2; 前言 AR 眼镜系统版本 蓝牙电话 来电铃声 系统音效 1. &#x1f531; Android9 原生的来电铃声&#xff0c;走的哪个通道&#xff1f; 2. &#x1f4a0; Android9 原生的来电铃声&#xff0c;使用什么播放&#xff1f; 2.1 来电铃声创建准备 2.2 来…

C语言指针系列2——加深理解

大家&#xff0c;今天讲的知识点是一块儿一块儿的&#xff0c;所以大家要好好学习喔~ 话不多说&#xff0c;开始正题 关键字&#xff1a;const &#xff08;三种用法&#xff09; 1. int* const p; 2. int const* p; 3. const int* const p; 首先我们要了解一下const&#xff…

828华为云征文|使用Flexus X实例安装宝塔面板教学

目录 一、Flexus X实例简介 1.1 概述 1.2 产品规格 二、切换操作系统 2.1 Huawei Cloud EulerOS 2.0 标准版 2.2 切换镜像 三、部署宝塔面板 3.1 安装宝塔面板 3.2 放通安全组规则 3.3 登录宝塔面板 四、使用感受 4.1 柔性算力随心配 4.2 一直加速一直快 4.3 越用…

C++之分割字符串的两种方式

方式一 #include <string> #include <vector> #include <sstream> #include <iostream>std::vector<std::string> split(const std::string& str, char delim) {std::stringstream ss(str);std::string item;std::vector<std::string>…

防火墙-CentOS7-firewalld

文章目录 一、防火墙以及Linux防火墙服务介绍什么是防火墙&#xff0c;有什么用防火墙的结构防火墙的作用为什么需要防火墙防火墙何时需要开启防火墙何时可以关闭名词什么是入站&#xff1f;出站 Linux防火墙发展历程1. 初期阶段2. iptables的出现3. 发展与扩展4. nftables的引…

Codeforces Round 592 (Div. 2) C题 The Football Season(Exgcd)

题目链接 https://codeforces.com/problemset/problem/1244/C 思路 其实就是要求 a x b y c axbyc axbyc的一组 x y xy xy的最小整数解。因为题目保证了 a > b a>b a>b&#xff0c;所以只需要使得 y y y最小即可。 我们对 a x b y c axbyc axbyc推导得到&…

jmeter断言---响应断言

请求http://www.baidu.com 检查&#xff1a;让程序检查响应数据中是否包含“百度一下&#xff0c;你就知道” 操作步骤&#xff1a; 1.添加线程组 2.添加http请求 3.添加断言&#xff08;需要在http请求下添加断言&#xff0c;而且可以根据断言测试字段等信息新建不同的断…

黑盒测试与白盒测试总结

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 黑盒测试与白盒测试是软件测试中两种不同的测试方法&#xff0c;它们的主要区别在于测试者对被测试软件的了解程度。下面&#xff0c;我们将详细介绍这两种测试方…

Windows大幅提高内存使用率,大幅减少内存占用率

事情原因&#xff1a;在笔记本16G内存使用生产力工具不够用的情况下&#xff0c;我把内存条加到了32G&#xff0c;开始的时候是好的&#xff0c;后来打开个IDEA&#xff0c;居然占用了80%的内存&#xff0c;其实IDEA也就占了4G内存&#xff0c;后经过查阅资料后得出了解决办法……

Fabric V2.5 通用溯源系统——使用Hyperledger Caliper压力测试

Hyperledger Caliper 0.6.0 是一款测试区块链性能的工具,支持Hyperledger Fabric、Ethereum等,支持丰富的测试配置参数,测试完成后将直接输出报告,相较于tape更加专业,但是配置稍微有些复杂。本文将一步一步配置Caliper以测试Fabric V2.5 通用溯源系统中的注册用户、查询用…

Java语法-类和对象之继承与多态(中)

1. 继承 为什么要继承? 从生物学角度来说,继承就是把父辈的基因遗传给子代,然后子代再在细胞分裂的途中产生变异,生成比父辈更加适应环境的物种.其中很重要的就是继承给子代的基因(父类的方法和属性)和子代在父辈的基础上产生的变异(方法的重写). 比如猫和狗都是哺乳动物,是在…

刷题小记3----每日一题精进Java技能(详细思路解析✅)

文章目录 一、两种排序方法二、最小公倍数三、另类加法四、倒置字符串五、统计回文 一、两种排序方法 题目链接&#xff1a;两种排序方法 题目描述&#xff1a; 考拉有n个字符串字符串&#xff0c;任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法&#x…