优质高等职业院校建设网站wordpress 文章背景透明

张小明 2026/1/8 7:16:06
优质高等职业院校建设网站,wordpress 文章背景透明,农村自建房设计图 一层楼,网站建设套(新卷,100分)- 字符串摘要#xff08;Java JS Python C#xff09;题目描述给定一个字符串的摘要算法#xff0c;请输出给定字符串的摘要值去除字符串中非字母的符号。如果出现连续字符(不区分大小写) #xff0c;则输出#xff1a;该字符 (小写) 连续…(新卷,100分)- 字符串摘要Java JS Python C题目描述给定一个字符串的摘要算法请输出给定字符串的摘要值去除字符串中非字母的符号。如果出现连续字符(不区分大小写) 则输出该字符 (小写) 连续出现的次数。如果是非连续的字符(不区分大小写)则输出该字符(小写) 该字母之后字符串中出现的该字符的次数对按照以上方式表示后的字符串进行排序字母和紧随的数字作为一组进行排序数字大的在前数字相同的则按字母进行排序字母小的在前。输入描述一行字符串长度为[1,200]输出描述摘要字符串用例输入aabbcc输出a2b2c2说明无输入bAaAcBb输出a3b2b2c0说明bAaAcBb:第一个b非连续字母该字母之后字符串中还出现了2次(最后的两个Bb) 所以输出b2a连续出现3次输出a3c非连续该字母之后字符串再没有出现过c输出c0Bb连续2次输出b2对b2a3c0b2进行排序最终输出a3b2b2c0题目解析本题主要考察逻辑分析。本题主要难点在于如果是非连续的字符(不区分大小写)则输出该字符(小写) 该字母之后字符串中出现的该字符的次数如果当前位置的字母是一个非连续字符那么我们需要统计当前位置之后的该字母出现次数。为了避免重复的扫描统计我们可以一开始就统计好所有字母的出现次数到count中每扫描一个位置则对于位置的字母数量count[letter]--表示该字母在后面还剩多少个。这样的话碰到非连续字母letter时我们只需要获取count[letter]即可知道其后续还有多少个letter字母。JS算法源码/* JavaScript Node ACM模式 控制台输入获取 */ const readline require(readline); const rl readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on(line, (line) { console.log(getResult(line)); }); function getResult(s) { // 不区分大小写 s s.toLowerCase(); // 统计每个字母出现的次数 const count {}; // 去除字符串中的非字母 const letters []; for (let c of s) { if (c a c z) { count[c] (count[c] ?? 0) 1; letters.push(c); } } // 加空格是为了避免后续的收尾操作如果有疑问可以移除下面加空格操作 s letters.join() ; // 记录连续字母和非连续字母 const ans []; // 上一个位置的字母 let pre s[0]; // 该字母连续次数记为1 let repeat 1; // 后续该字母还有count[pre]-1个 count[pre]--; for (let i 1; i s.length; i) { // 当前位置的字母 const cur s[i]; // 后续该字母还有count[cur]-1个 count[cur]--; if (cur pre) { // 如果当前位置和上一个位置的字母相同则产生连续 // 连续次数1 repeat; } else { // 如果当前位置和上一个位置的字母不同则连续打断 // 如果pre字母连续次数1则是真连续那么就是prerepeat,否则就是假连续,是precount[pre] ans.push([pre, repeat 1 ? repeat : count[pre]]); // 更新pre为cur pre cur; // 更新pre连续次数为1 repeat 1; } } // 字母和紧随的数字作为一组进行排序数字大的在前数字相同的则按字母进行排序字母小的在前 return ans .sort((a, b) a[1] ! b[1] ? b[1] - a[1] : a[0].charCodeAt() - b[0].charCodeAt() ) .map(([letter, num]) letter num) .join(); }Java算法源码import java.util.ArrayList; import java.util.Scanner; public class Main { // 字母数字类 static class Letter { char letter; int num; public Letter(char letter, int num) { this.letter letter; this.num num; } Override public String toString() { return this.letter this.num; } } public static void main(String[] args) { Scanner sc new Scanner(System.in); System.out.println(getResult(sc.nextLine())); } public static String getResult(String s) { // 不区分大小写 s s.toLowerCase(); // 统计每个字母出现的次数 int[] count new int[128]; // 去除字符串中的非字母 StringBuilder sb new StringBuilder(); for (int i 0; i s.length(); i) { char c s.charAt(i); if (c a c z) { count[c]; sb.append(c); } } // 加空格是为了避免后续的收尾操作如果有疑问可以移除下面加空格操作 s sb ; // 记录连续字母和非连续字母 ArrayListLetter ans new ArrayList(); // 上一个位置的字母 char pre s.charAt(0); // 该字母连续次数记为1 int repeat 1; // 后续该字母还有count[pre]-1个 count[pre]--; for (int i 1; i s.length(); i) { // 当前位置的字母 char cur s.charAt(i); // 后续该字母还有count[cur]-1个 count[cur]--; if (cur pre) { // 如果当前位置和上一个位置的字母相同则产生连续 // 连续次数1 repeat; } else { // 如果当前位置和上一个位置的字母不同则连续打断 // 如果pre字母连续次数1则是真连续那么就是prerepeat,否则就是假连续,是precount[pre] ans.add(new Letter(pre, repeat 1 ? repeat : count[pre])); // 更新pre为cur pre cur; // 更新pre连续次数为1 repeat 1; } } // 字母和紧随的数字作为一组进行排序数字大的在前数字相同的则按字母进行排序字母小的在前 ans.sort((a, b) - a.num ! b.num ? b.num - a.num : a.letter - b.letter); StringBuilder res new StringBuilder(); for (Letter an : ans) { res.append(an.toString()); } return res.toString(); } }Python算法源码# 输入获取 s input() # 算法入口 def getResult(): global s # 不区分大小写 s s.lower() # 统计每个字母出现的次数 count {} # 去除字符串中的非字母 letters [] for c in s: if z c a: count[c] count.get(c, 0) 1 letters.append(c) # 加空格是为了避免后续的收尾操作如果有疑问可以移除下面加空格操作 s .join(letters) count[ ] 1 # 记录连续字母和非连续字母 ans [] # 上一个位置的字母 pre s[0] # 该字母连续次数记为1 repeat 1 # 后续该字母还有count[pre]-1个 count[pre] - 1 for i in range(1, len(s)): # 当前位置的字母 cur s[i] # 后续该字母还有count[cur]-1个 count[cur] - 1 if cur pre: # 如果当前位置和上一个位置的字母相同则产生连续 # 连续次数1 repeat 1 else: # 如果当前位置和上一个位置的字母不同则连续打断 # 如果pre字母连续次数1则是真连续那么就是prerepeat,否则就是假连续,是precount[pre] ans.append([pre, repeat if repeat 1 else count[pre]]) # 更新pre为cur pre cur # 更新pre连续次数为1 repeat 1 # 字母和紧随的数字作为一组进行排序数字大的在前数字相同的则按字母进行排序字母小的在前 ans.sort(keylambda x: (-x[1], x[0])) return .join(map(lambda x: x[0]str(x[1]), ans)) # 算法调用 print(getResult())C算法源码#include stdio.h #include string.h #include stdlib.h #define MAX_SIZE 201 typedef struct { char letter; int num; } Letter; int cmp(const void *a, const void *b) { Letter *A (Letter *) a; Letter *B (Letter *) b; return A-num ! B-num ? B-num - A-num : A-letter - B-letter; } int main() { char s[MAX_SIZE]; gets(s); unsigned long long len strlen(s); // 记录转小写去除非字母后的s字符串 char ss[MAX_SIZE]; int ss_size 0; // 统计每个字母出现的次数 int count[128] {0}; for (int i 0; i len; i) { char c s[i]; if (c a c z) { count[c]; ss[ss_size] c; } else if (c A c Z) { count[c 32]; ss[ss_size] (char) (c 32); } } // 记录连续字母和非连续字母 Letter res[MAX_SIZE]; int res_size 0; // 上一个位置的字母 char pre ss[0]; // 该字母连续次数记为1 int repeat 1; // 后续该字母还有count[pre]-1个 count[pre]--; for (int i 1; i ss_size; i) { // 当前位置的字母 char cur ss[i]; // 后续该字母还有count[cur]-1个 count[cur]--; if (cur pre) { // 如果当前位置和上一个位置的字母相同则产生连续 // 连续次数1 repeat; } else { // 如果当前位置和上一个位置的字母不同则连续打断 // 如果pre字母连续次数1则是真连续那么就是prerepeat,否则就是假连续,是precount[pre] res[res_size].num repeat 1 ? repeat : count[pre]; res[res_size].letter pre; res_size; // 更新pre为cur pre cur; // 更新pre连续次数为1 repeat 1; } } // 字母和紧随的数字作为一组进行排序数字大的在前数字相同的则按字母进行排序字母小的在前 qsort(res, res_size, sizeof(Letter), cmp); char ans[MAX_SIZE] {\0}; for (int i 0; i res_size; i) { char letter[2]; sprintf(letter, %c, res[i].letter); char num[10]; sprintf(num, %d, res[i].num); strcat(ans, letter); strcat(ans, num); } puts(ans); return 0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

定制化网站开发多少钱免费网站创建

系统管理工具详解 在系统管理领域,有许多实用的工具可以帮助我们更高效地完成各种任务。本文将详细介绍一些常用的系统管理工具,包括它们的功能、使用方法以及实际应用场景。 1. nohup:让进程在后台持续运行 nohup 命令可以让进程在用户注销或网络中断等情况下继续运行,…

张小明 2026/1/7 11:36:58 网站建设

网站开发和美工的区别百度最新人工智能

简介 本文深入分析了LangChain框架作为AI Agent开发工具的优势与缺点。优势在于生态全面、集成能力强;缺点包括模块抽象导致学习曲线陡峭、版本迭代快引发兼容性问题、性能开销大、部分功能不够极致及依赖第三方服务。文章指出LangChain适合快速验证原型和集成多种…

张小明 2026/1/7 11:44:57 网站建设

哈尔滨城乡建设局网站首页速升网站

3个技巧让窗口置顶功能成为你的效率倍增器 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 还在为电脑屏幕上堆积如山的窗口感到头疼吗?总是要在多个应用间来回切换&a…

张小明 2026/1/7 13:29:48 网站建设

深圳论坛网站建设佛山网站建设怎么办

终极韩语NLP指南:快速掌握KoNLPy核心功能 【免费下载链接】konlpy Python package for Korean natural language processing. 项目地址: https://gitcode.com/gh_mirrors/ko/konlpy 韩语自然语言处理在现代AI应用中占据重要地位,KoNLPy作为专为韩…

张小明 2026/1/7 13:50:35 网站建设

桂林商品房做民宿在哪个网站登记好wordpress文章底部加分享

SciencePlots终极指南:10分钟打造专业级科研图表 【免费下载链接】SciencePlots garrettj403/SciencePlots: SciencePlots 是一个面向科研人员的Matplotlib样式库,旨在创建符合科学出版规范且专业美观的数据图表。该库包含了一系列预设的主题和参数配置&…

张小明 2026/1/7 15:30:46 网站建设

舞阳网站建设小白node怎么做网站

Sunshine终极配置:打造高效家庭游戏串流系统 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器,支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在…

张小明 2026/1/7 15:40:56 网站建设