当前位置: 首页 > news >正文

专业网站建设服务公司哪家好引流人脉推广软件

专业网站建设服务公司哪家好,引流人脉推广软件,网站开发工程师怎么样,金融投资网站 php源码翻译: 主要思路解释 整体思路概述: 本题的目标是给定整数(要删除的数字个数)和整数(以字符串形式表示的数字),通过合理删除个数字,使得最终得到的新数字最小。程序采用了一种贪心算…

翻译: 

主要思路解释

  1. 整体思路概述
    • 本题的目标是给定整数(要删除的数字个数)和整数(以字符串形式表示的数字),通过合理删除个数字,使得最终得到的新数字最小。程序采用了一种贪心算法的思想,从左到右遍历数字字符串,每次尝试删除能使当前数字变小的高位数字,经过多次这样的操作以及一些边界情况处理后,输出最终得到的最小数字字符串表示的结果。
  2. 输入与初始化部分
    • 首先定义了多个变量,包括用于存储测试用例数量的、每个测试用例中要删除数字个数的、数字字符串长度的以及用于循环计数的和等,同时定义了字符数组用于存储输入的数字字符串。通过scanf函数读取测试用例的数量,然后进入外层while循环处理每个测试用例。在每个测试用例中,先读取要删除的数字个数和数字字符串,接着使用strlen函数获取字符串 (n的长度并存储到len` 变量中。
  3. 核心处理逻辑部分(寻找并删除数字)
    • 外层for循环用于遍历数字字符串(除了最后一个字符,因为比较时是和下一个字符对比),在循环中,对于每个字符位置 (i,判断如果当前字符n[i]大于下一个字符n[i + 1],并且还有可删除的数字(m不等于0),这意味着删除当前字符可以使得到的新数字更小。此时,通过内层for循环将当前字符后面的所有字符依次向前移动一位n[j] = n[j + 1]),实现删除当前字符的效果,然后将字符串长度len减1(因为删除了一个字符),可删除数字个数m也减1。为了确保能重新从字符串开头开始检查是否还有可删除的能使数字变小的字符,将i重置为 -1,并且如果此时已经删除了足够数量的数字(m变为0),就直接跳出外层for` 循环,不再继续寻找可删除的数字了。
  4. 处理前导零及输出结果部分
    • 首先通过一个while循环找到处理后的字符串中第一个非零字符的位置,存储到变量a中,跳过前面可能存在的连续的 0。然后通过一个for循环从第一个非零字符位置a开始,到len - m结束(因为已经删除了m个字符),逐个输出剩余字符串的字符,这就是最终得到的删除m个数字后的数字字符串表示。最后,再判断如果第一个非零字符的位置a大于等于剩余字符串的长度(len - m),说明剩下的字符串全是 0 或者为空,此时输出 0 作为最终结果,并且每个测试用例输出完结果后进行换行操作,以便下一个测试用例的结果能正确显示,持续处理所有测试用例,直到全部处理完毕。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{int T, m, len, i, j;  // T用于存储测试用例的数量,m表示每个测试用例中要删除的数字个数,len用于记录输入数字字符串的长度,i、j主要用于循环计数char n[1002];  // 定义字符数组n,用于存储输入的数字字符串,大小设为1002,可根据题目中数字字符串长度的限制进行合理设置// 读取测试用例的数量Tscanf("%d", &T);// 外层while循环,针对每个测试用例进行处理,每处理完一个测试用例,T减1,直到所有测试用例都处理完while (T--){// 读取当前测试用例中要删除的数字个数m以及数字字符串nscanf("%d%s", &m, &n);len = strlen(n);  // 获取输入数字字符串n的长度// 如果要删除的数字个数m大于等于字符串的长度len,说明要删除的数字太多,直接输出0,并通过continue跳过当前测试用例后续的处理步骤,直接进入下一个测试用例的处理if (m >= len){printf("0\n");continue;}// 外层for循环用于遍历数字字符串(除了最后一个字符,因为比较时是和下一个字符对比),尝试找到可以删除的数字,以得到最小的新数字for (i = 0; i < len - 1; i++){// 如果当前字符大于下一个字符,且还有可删除的数字(m不等于0),说明可以通过删除当前字符来使得到的新数字更小if (n[i] > n[i + 1] && m!= 0){// 内层for循环,将当前字符后面的所有字符依次向前移动一位,实现删除当前字符的效果for (j = i; j < len - 1; j++){n[j] = n[j + 1];}len--;  // 字符串长度减1,因为删除了一个字符m--;  // 可删除的数字个数减1i = -1;  // 将i重置为 -1,使得下一次循环时会重新从字符串开头开始遍历,因为前面的字符位置发生了变化,需要重新检查if (m == 0)  // 如果已经删除了足够数量的数字(m变为0),就不需要再继续遍历寻找可删除的数字了,直接跳出循环break;}}int a = 0;// 这个循环用于找到处理后的字符串中第一个非零字符的位置,跳过前面可能存在的连续的0while (n[a] == '0'){a++;}// 循环输出删除m个数字后剩下的字符串内容,从第一个非零字符位置a开始,到len - m结束(因为已经删除了m个字符)for (i = a; i < len - m; i++){printf("%c", n[i]);}// 如果经过前面的处理后,第一个非零字符的位置a大于等于剩余字符串的长度(len - m),说明剩下的字符串全是0或者为空,此时输出0if (a >= len - m){printf("0");}printf("\n");  // 每个测试用例输出完结果后进行换行,以便下一个测试用例的结果能正确显示}return 0;
}

http://www.dinnco.com/news/52601.html

相关文章:

  • 温州外贸网站制作百度百家官网入口
  • 长沙人才市场招聘网站关键词优化软件效果
  • 黄浦区seo网站建设希爱力双效片用后感受
  • 昆明网站建设排名十大最免费软件排行榜
  • 可以做直播的游戏视频网站seo优化排名营销
  • 如何做视频教程网站网络推广专员岗位职责
  • 云服务器可以放几个网站企业查询软件
  • 帮做网站的公司西安外包公司排行
  • 抚州建设网站的公司百度商家
  • 广州开发区人才工作集团有限公司seo模拟点击
  • 创建一个网站需要怎么做seo查询工具网站
  • 浦东新区做网站公司电商运营推广的方式和渠道有哪些
  • 沂水网站优化推广友情链接交换软件
  • 优秀网站设计欣赏图片网络软文名词解释
  • 网站建设新手2024年最新一轮阳性症状
  • 电商网站开发模板郑州seo方案
  • html5企业网站案例站长平台网站
  • 做网站编辑工作好不好常见的网络推广方法有哪些
  • 郎溪做网站什么关键词能搜到资源
  • 网站服务公司特点站长之家ip地址归属查询
  • 做教育的网站有哪些内容吗百度网盘搜索免费资源
  • 网站建设数据中心佛山seo培训机构
  • java软件开发有前途吗班级优化大师免费下载安装
  • 家庭宽带怎么做网站铜仁搜狗推广
  • 营销型网站架构师网站seo排名优化价格
  • 网站建设项目收获百度引流推广费用多少
  • 淄博网站设计方案百度流量推广项目
  • 各家建站平台seo在线优化排名
  • WordPress侧边栏跟随优化大师如何删掉多余的学生
  • 网站建设培训课程温州seo排名公司