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

搜索动图素材的网站公司网站运营注意事项

搜索动图素材的网站,公司网站运营注意事项,公司做网站怎么赚钱,手机制作广告的app一、问题描述 题目描述 输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母 (k 1) 输出该字母所在字符串中的位置索引 (字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串… 一、问题描述 题目描述 输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母 (k 1) 输出该字母所在字符串中的位置索引 (字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引 如果有重复字母则输出字母的最小位置索引 输入描述 第一行输入一个由大小写字母组成的字符串 第二行输入kk必须大于0k可以大于输入字符串的长度 输出描述 输出字符串中第K个最小ASCII码值的字母所在字符串的位置索引 k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引 如果第K个最小ASCII码值的字母存在重复则输出该字母的最小位置索引 用例 用例 1 输入: AbCdeFG 3输出: 5说明: 根据ASCII码值排序第三个ASCII码值的字母为F F在字符串中位置索引为5 (0为字符串的第一个字母位置索引) 用例 2 输入: fAdDAkBbBq 4输出: 6说明: 根据ASCII码值排序前4个字母为AABB由于B重复则只取B的第一个最小位置索引6 而不是第二个B的位置索引8 题目解析 本题是简单的字符串操作题。 2023.05.20 补充了第二个用例 根据第二个用例来看题目要找的第k个不是去重升序后的第k个而只是排序后的第k个。 详细步骤 读取输入 读取一个由大小写字母组成的字符串 s。读取一个整数 k。 创建字符索引映射 创建一个字典 char_index键为字符值为该字符在字符串中的最小索引。遍历字符串 s记录每个字符的最小索引。 排序字符 将字符串 s 中的字符按ASCII码值排序得到排序后的字符列表 sorted_chars。 查找第K个字符 如果 k 大于字符串长度取最大ASCII码值的字符。否则取排序后第 k 个字符。 输出结果 输出该字符在字符串中的最小位置索引。 用例解释 用例 1 输入 s AbCdeFGk 3 输出 5 解释 按ASCII码值排序后的字符列表[A, C, d, e, F, G, b]第3个字符是 F其在字符串中的位置索引为 5。 用例 2 输入 s fAdDAkBbBqk 4 输出 6 解释 按ASCII码值排序后的字符列表[A, A, B, B, B, D, D, f, k, q]第4个字符是 B其在字符串中的最小位置索引为 6。 通过上述步骤我们可以高效地求出第K个最小ASCII码值的字母在字符串中的位置索引。这种方法的时间复杂度为 O(n log n)其中 n 是字符串的长度。 二、JavaScript算法源码 以下是 JavaScript 代码的详细中文注释和逻辑讲解 JavaScript 代码 /* JavaScript Node ACM模式 控制台输入获取 */ const readline require(readline); // 引入 readline 模块用于读取控制台输入// 创建 readline 接口 const rl readline.createInterface({input: process.stdin, // 输入流为标准输入output: process.stdout, // 输出流为标准输出 });// 存储输入行的数组 const lines [];// 监听输入事件 rl.on(line, (line) {lines.push(line); // 将每一行输入存入 lines 数组// 当输入行数为 2 时表示输入完成if (lines.length 2) {const [str, k] lines; // 解构赋值获取输入的两行数据// 调用算法函数并输出结果console.log(getKIndex(str, k));// 清空 lines 数组以便处理下一组输入lines.length 0;} });// 算法函数获取字符串中第 k 小的字符的索引 function getKIndex(str, k) {// 如果 k 大于字符串长度则将 k 设置为字符串长度if (k str.length) k str.length;// 将字符串转换为数组排序后获取第 k 小的字符const tar [...str].sort()[k - 1];// 返回该字符在原字符串中的索引return str.indexOf(tar); }代码逻辑讲解 1. 输入处理 使用 readline 模块读取控制台输入。将每一行输入存入 lines 数组。当 lines 数组的长度为 2 时表示输入完成开始处理数据。 2. 算法逻辑 函数 getKIndex 参数 str输入的字符串。k表示需要查找的第 k 小的字符。 逻辑 如果 k 大于字符串长度则将 k 设置为字符串长度避免越界。将字符串转换为数组并对数组进行排序。获取排序后数组中第 k - 1 个字符因为数组索引从 0 开始。返回该字符在原字符串中的索引。 3. 示例验证 示例 1 输入hello 3处理过程 将字符串 hello 转换为数组[h, e, l, l, o]。对数组排序[e, h, l, l, o]。获取第 3 小的字符l。返回 l 在原字符串中的索引2。 输出2。 示例 2 输入world 5处理过程 将字符串 world 转换为数组[w, o, r, l, d]。对数组排序[d, l, o, r, w]。获取第 5 小的字符w。返回 w 在原字符串中的索引0。 输出0。 总结 功能在给定字符串 str 和整数 k 的情况下找到字符串中第 k 小的字符并返回其索引。核心逻辑 将字符串转换为数组并排序。获取排序后数组中第 k - 1 个字符。返回该字符在原字符串中的索引。 适用场景需要查找字符串中第 k 小的字符及其索引的场景。注意事项 如果 k 大于字符串长度则 k 会被设置为字符串长度。时间复杂度为 O(n log n)其中 n 是字符串长度排序操作的时间复杂度。 如果有其他问题欢迎随时提问 三、Java算法源码 以下是对代码的详细中文注释和讲解 import java.util.Arrays; // 导入Arrays类用于数组操作 import java.util.Scanner; // 导入Scanner类用于从控制台读取输入public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in); // 创建Scanner对象用于读取用户输入String str sc.next(); // 读取用户输入的字符串int k sc.nextInt(); // 读取用户输入的整数kSystem.out.println(getResult(str, k)); // 调用getResult方法并输出结果}public static int getResult(String str, int k) {char[] chars str.toCharArray(); // 将字符串转换为字符数组Arrays.sort(chars); // 对字符数组进行排序按字典序升序排列if (k str.length()) k str.length(); // 如果k大于字符串长度则将k设置为字符串长度char tar chars[k - 1]; // 获取排序后字符数组中的第k个字符索引为k-1return str.indexOf(tar); // 返回该字符在原字符串中的索引位置} }代码讲解 导入类库 import java.util.Arrays;导入Arrays类用于对数组进行排序等操作。import java.util.Scanner;导入Scanner类用于从控制台读取用户输入。 主方法 main Scanner sc new Scanner(System.in);创建一个Scanner对象用于读取用户输入。String str sc.next();读取用户输入的字符串。int k sc.nextInt();读取用户输入的整数k。System.out.println(getResult(str, k));调用getResult方法并将结果输出到控制台。 getResult 方法 char[] chars str.toCharArray();将输入的字符串str转换为字符数组chars。Arrays.sort(chars);对字符数组chars进行排序排序后字符数组中的字符按字典序升序排列。if (k str.length()) k str.length();如果输入的k大于字符串的长度则将k设置为字符串的长度防止数组越界。char tar chars[k - 1];获取排序后字符数组中的第k个字符由于数组索引从0开始所以是k-1。return str.indexOf(tar);返回该字符在原字符串str中的索引位置。 代码功能总结 该程序的功能是给定一个字符串和一个整数k程序会先对字符串中的字符进行排序然后找到排序后的第k个字符并返回该字符在原字符串中的索引位置。 示例 假设输入字符串为hellok为3 将字符串转换为字符数组[h, e, l, l, o]。对字符数组进行排序[e, h, l, l, o]。取第3个字符索引为2l。返回l在原字符串hello中的索引位置2。 因此程序输出为2。 希望这个解释对您理解代码有所帮助 四、Python算法源码 以下是对代码的详细中文注释和讲解 # 输入获取 s input() # 从控制台读取用户输入的字符串 k int(input()) # 从控制台读取用户输入的整数k# 算法入口 def getResult(s, k):chars list(s) # 将字符串s转换为字符列表chars.sort() # 对字符列表进行排序按字典序升序排列if k len(s): # 如果k大于字符串的长度k len(s) # 将k设置为字符串的长度防止越界tar chars[k - 1] # 获取排序后字符列表中的第k个字符索引为k-1return s.index(tar) # 返回该字符在原字符串s中的索引位置# 调用算法 print(getResult(s, k)) # 调用getResult函数并输出结果代码讲解 输入获取 s input()从控制台读取用户输入的字符串并赋值给变量s。k int(input())从控制台读取用户输入的整数并赋值给变量k。 getResult 函数 chars list(s)将字符串s转换为字符列表chars。chars.sort()对字符列表chars进行排序排序后字符列表中的字符按字典序升序排列。if k len(s): k len(s)如果输入的k大于字符串的长度则将k设置为字符串的长度防止索引越界。tar chars[k - 1]获取排序后字符列表中的第k个字符由于列表索引从0开始所以是k-1。return s.index(tar)返回该字符在原字符串s中的索引位置。 调用算法 print(getResult(s, k))调用getResult函数并将结果输出到控制台。 代码功能总结 该程序的功能是给定一个字符串和一个整数k程序会先对字符串中的字符进行排序然后找到排序后的第k个字符并返回该字符在原字符串中的索引位置。 示例 假设输入字符串为hellok为3 将字符串转换为字符列表[h, e, l, l, o]。对字符列表进行排序[e, h, l, l, o]。取第3个字符索引为2l。返回l在原字符串hello中的索引位置2。 因此程序输出为2。 注意事项 索引从0开始 Python中的列表索引从0开始因此第k个字符的索引是k-1。 越界处理 如果k大于字符串的长度程序会将k设置为字符串的长度避免索引越界。 字符重复 如果字符串中有重复字符s.index(tar)会返回第一个匹配字符的索引。 希望这个解释对您理解代码有所帮助 五、C/C算法源码 以下是 C语言代码 和 C代码 的详细中文注释和讲解并附上代码转换。 C语言代码 #include stdio.h #include stdlib.h #include string.h#define MAX_SIZE 10000 // 定义最大字符串长度// 比较函数用于qsort排序 int cmp(const void* a, const void* b) {return (*(char*) a) - (*(char*) b); // 按字符的ASCII值升序排序 }int main() {char s[MAX_SIZE]; // 定义字符数组用于存储输入的字符串gets(s); // 从控制台读取字符串注意gets不安全建议使用fgetsint k;scanf(%d, k); // 从控制台读取整数kint n strlen(s); // 获取字符串的长度char s_cp[n 1]; // 定义字符数组用于存储字符串的副本strcpy(s_cp, s); // 将原字符串复制到副本中qsort(s_cp, n, sizeof(char), cmp); // 对副本字符串进行排序if (k n) { // 如果k大于字符串长度k n; // 将k设置为字符串长度防止越界}char target s_cp[k - 1]; // 获取排序后字符串的第k个字符索引为k-1printf(%lld\n, strchr(s, target) - s); // 输出目标字符在原字符串中的索引return 0; }C语言代码讲解 头文件 #include stdio.h标准输入输出库用于printf和scanf。#include stdlib.h标准库用于qsort。#include string.h字符串处理库用于strlen和strcpy。 宏定义 #define MAX_SIZE 10000定义最大字符串长度为10000。 比较函数 cmp 用于qsort排序按字符的ASCII值升序排列。 主函数 main char s[MAX_SIZE];定义字符数组用于存储输入的字符串。gets(s);从控制台读取字符串注意gets不安全建议使用fgets。scanf(%d, k);从控制台读取整数k。int n strlen(s);获取字符串的长度。char s_cp[n 1];定义字符数组用于存储字符串的副本。strcpy(s_cp, s);将原字符串复制到副本中。qsort(s_cp, n, sizeof(char), cmp);对副本字符串进行排序。if (k n) { k n; }如果k大于字符串长度将k设置为字符串长度。char target s_cp[k - 1];获取排序后字符串的第k个字符。printf(%lld\n, strchr(s, target) - s);输出目标字符在原字符串中的索引。 C代码 #include iostream #include algorithm // 包含sort函数 #include cstring // 包含strlen和strchr函数using namespace std;int main() {char s[10000]; // 定义字符数组用于存储输入的字符串cin.getline(s, 10000); // 从控制台读取字符串安全的方式int k;cin k; // 从控制台读取整数kint n strlen(s); // 获取字符串的长度char s_cp[n 1]; // 定义字符数组用于存储字符串的副本strcpy(s_cp, s); // 将原字符串复制到副本中sort(s_cp, s_cp n); // 对副本字符串进行排序if (k n) { // 如果k大于字符串长度k n; // 将k设置为字符串长度防止越界}char target s_cp[k - 1]; // 获取排序后字符串的第k个字符索引为k-1cout (strchr(s, target) - s) endl; // 输出目标字符在原字符串中的索引return 0; }C代码讲解 头文件 #include iostream输入输出流库用于cin和cout。#include algorithm算法库用于sort函数。#include cstringC风格字符串处理库用于strlen和strchr。 主函数 main char s[10000];定义字符数组用于存储输入的字符串。cin.getline(s, 10000);从控制台读取字符串安全的方式。cin k;从控制台读取整数k。int n strlen(s);获取字符串的长度。char s_cp[n 1];定义字符数组用于存储字符串的副本。strcpy(s_cp, s);将原字符串复制到副本中。sort(s_cp, s_cp n);对副本字符串进行排序。if (k n) { k n; }如果k大于字符串长度将k设置为字符串长度。char target s_cp[k - 1];获取排序后字符串的第k个字符。cout (strchr(s, target) - s) endl;输出目标字符在原字符串中的索引。 代码功能总结 该程序的功能是给定一个字符串和一个整数k程序会先对字符串中的字符进行排序然后找到排序后的第k个字符并返回该字符在原字符串中的索引位置。 示例 假设输入字符串为hellok为3 将字符串转换为字符数组[h, e, l, l, o]。对字符数组进行排序[e, h, l, l, o]。取第3个字符索引为2l。返回l在原字符串hello中的索引位置2。 因此程序输出为2。 注意事项 C语言中的gets不安全 建议使用fgets替代gets例如fgets(s, MAX_SIZE, stdin);。 C中的cin.getline 是安全的输入方式可以避免缓冲区溢出。 字符重复 如果字符串中有重复字符strchr会返回第一个匹配字符的索引。 希望这个解释对您理解代码有所帮助
http://www.hkea.cn/news/14490385/

相关文章:

  • 信誉比较好的商家可做网站dw怎么做打开网站跳出提示
  • 淮南建设公司网站怎么做网站需求分析
  • 如何找网站建设客户电影网站网页设计实训报告
  • ppt做视频模板下载网站有哪些内容广西seo搜索引擎优化
  • 自己开发网站要多少钱wordpress宾馆
  • 北京哪个公司做网站做蛋糕的网站
  • 怎样做网站亮照亮标一个公司能备案几个网站
  • wordpress搭建网站东莞响应式网站建设定制
  • 做网站订金是多少微信公众平台入口
  • 我在学校志愿队做网站的经历vue做网站cms
  • 网站用html做框架asp做主页达州网站制作
  • 惠济免费网站建设游戏推广
  • 烟台网站设计公司品牌网站建设找顺的
  • swoole怎么做直播网站潍坊网站建设 马
  • 北京网站建设公司如何排版wordpress 自己做主页
  • 关于单位网站建设的请示网站用ps做还是ai
  • 宝安福永小学网站建设风机网站怎么做
  • 怎样把网站建设在国外wordpress能外链的主题
  • 企业免费招聘网站为什么要建设企业网站
  • 企业邮箱 网站建设公司企业文化墙制作
  • 珠海建站软件杭州 平台 公司 网站建设
  • 做得不好的知名企业网站哈尔滨工程造价信息网
  • 空包网站建设网站怎么做展现量
  • 有哪些做婚礼平面设计的网站成品ppt的网站免费直播有哪些
  • 网站计数器phpwordpress 插件角色
  • 建设商城网站公司 百度百科企业网站托管电话
  • 郴州宸轩网络科技有限公司北京seo代理计费
  • 外贸网站建设视频杭州小蜜蜂网站建设
  • 新的南宁网站建设公司资源交易网站代码
  • 做服装到哪个网站拿货品质好精品网游