题解 3143: 蓝桥杯2023年第十四届省赛真题-更小的数

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

java实现更小的数,采用正常的循环流程,内部采用临时数6666666666666666

解题思路:就是依次遍历,从前向后找,看看当前位置的值是否大于内部循环的值,如果大则肯定可以;如果相等,就要根据这两个位置往内部方向进行判断,i++,j--,采用count作为临时计数,然后判断往里走之后的大小注意事项:参考代码:importjava.util.Scanner;publicclassMa

确定区间,找第一个左大右小,让count++

解题思路:定义两个指针l,r分别表示区间的两端定义hasSmaller方法如果l,r指向的字符满足左大右小,返回1表示找到这样一个符合条件的区间如果l,r指向的字符恰好相等,则将l++,r--缩小区间再判断如果l,r指向的字符左小右大,直接返回0,

判断首尾,如果相等就不断递归,直至结束或者判断出来首尾大小

解题思路:因为题目中是连续子序列,所以两个循环确定头尾,如果头大于尾,则肯定交换后小于之前数。如:54321交换后为12345。但是我们会碰到头尾相等的。如14321,那就比较第二个和倒数第二个这里就是比较4,2。但是如果还是相等,那就通过递归,直到两个数不相等,或者一直相等。

C语言解法,参考C++

摘要:解题思路:注意事项:参考代码:#include<stdio.h>#include<string.h>int main(){ char num[5000]; int i,j,a=0; scanf("%s……