做网站的公司那家好软文的概念是什么

张小明 2025/12/29 16:04:41
做网站的公司那家好,软文的概念是什么,吕梁网站设计,佛山市南海区城乡建设局网站给定一些短词字符串作为分割词#xff0c;去分割一段长字符串。从前往后遍历分割词#xff0c;查找并分割长字符串为对应的token。分词规则如下: 1.优先匹配最长分割词:若多个分割词可匹配同一位置#xff0c;选择长度最长的;长度相同时#xff0c;按字典序较大的优先。 2.…给定一些短词字符串作为分割词去分割一段长字符串。从前往后遍历分割词查找并分割长字符串为对应的token。分词规则如下:1.优先匹配最长分割词:若多个分割词可匹配同一位置选择长度最长的;长度相同时按字典序较大的优先。2.未匹配部分保留原样:无法匹配分割词的部分直接作为独立token输出。3.输出格式:每个token用括号包裹按原字符串顺序输出。输入描述:短词字符串列表每行一个空行后输入待分割的长字符串。输出描述:括号包裹的分词结果如(token1)(token2)示例1:输入:zhong guozhongguowomei guowo ai zhong guo mei guo ye xing输出(wo)(ai)(zhong guo)(mei guo)(ye)(xing)问题分析给定一组分割词和一个长字符串需要按照特定规则将长字符串分割为多个token。规则包括优先匹配最长分割词、字典序排序以及未匹配部分保留原样。输出格式要求用括号包裹每个token。解决思路分割词预处理将分割词按长度从长到短排序长度相同的按字典序降序排列。遍历分割词从长到短依次检查长字符串中是否有匹配的分割词。分割字符串匹配到的部分作为token未匹配的部分保留原样。输出结果将所有token按顺序用括号包裹输出。代码实现以下是Python、C、Java、JavaScript和C语言的实现代码。Python实现def tokenize(segments, text): # 预处理分割词按长度降序长度相同按字典序降序 segments.sort(keylambda x: (-len(x), x), reverseFalse) tokens [] i 0 n len(text) while i n: matched False for seg in segments: seg_len len(seg) if i seg_len n and text[i:iseg_len] seg: tokens.append(seg) i seg_len matched True break if not matched: # 处理未匹配部分按空格分割 if text[i] : i 1 else: j i while j n and text[j] ! : j 1 tokens.append(text[i:j]) i j return tokens # 读取输入 segments [] while True: line input().strip() if line : break segments.append(line) text input().strip() # 分词 tokens tokenize(segments, text) # 输出结果 print(.join(f({token}) for token in tokens))C实现#include iostream #include vector #include algorithm #include string using namespace std; vectorstring tokenize(vectorstring segments, string text) { // 预处理分割词按长度降序长度相同按字典序降序 sort(segments.begin(), segments.end(), [](const string a, const string b) { if (a.length() b.length()) { return a b; } return a.length() b.length(); }); vectorstring tokens; int i 0; int n text.length(); while (i n) { bool matched false; for (const string seg : segments) { int seg_len seg.length(); if (i seg_len n text.substr(i, seg_len) seg) { tokens.push_back(seg); i seg_len; matched true; break; } } if (!matched) { if (text[i] ) { i; } else { int j i; while (j n text[j] ! ) { j; } tokens.push_back(text.substr(i, j - i)); i j; } } } return tokens; } int main() { vectorstring segments; string line; while (getline(cin, line)) { if (line.empty()) { break; } segments.push_back(line); } string text; getline(cin, text); vectorstring tokens tokenize(segments, text); for (const string token : tokens) { cout ( token ); } cout endl; return 0; }Java实现import java.util.*; public class Main { public static ListString tokenize(ListString segments, String text) { // 预处理分割词按长度降序长度相同按字典序降序 segments.sort((a, b) - { if (a.length() b.length()) { return b.compareTo(a); } return Integer.compare(b.length(), a.length()); }); ListString tokens new ArrayList(); int i 0; int n text.length(); while (i n) { boolean matched false; for (String seg : segments) { int segLen seg.length(); if (i segLen n text.substring(i, i segLen).equals(seg)) { tokens.add(seg); i segLen; matched true; break; } } if (!matched) { if (text.charAt(i) ) { i; } else { int j i; while (j n text.charAt(j) ! ) { j; } tokens.add(text.substring(i, j)); i j; } } } return tokens; } public static void main(String[] args) { Scanner scanner new Scanner(System.in); ListString segments new ArrayList(); while (true) { String line scanner.nextLine(); if (line.isEmpty()) { break; } segments.add(line); } String text scanner.nextLine(); ListString tokens tokenize(segments, text); for (String token : tokens) { System.out.print(( token )); } System.out.println(); } }JavaScript实现function tokenize(segments, text) { // 预处理分割词按长度降序长度相同按字典序降序 segments.sort((a, b) { if (a.length b.length) { return b.localeCompare(a); } return b.length - a.length; }); const tokens []; let i 0; const n text.length; while (i n) { let matched false; for (const seg of segments) { const segLen seg.length; if (i segLen n text.substring(i, i segLen) seg) { tokens.push(seg); i segLen; matched true; break; } } if (!matched) { if (text[i] ) { i; } else { let j i; while (j n text[j] ! ) { j; } tokens.push(text.substring(i, j)); i j; } } } return tokens; } // 读取输入 const readline require(readline); const rl readline.createInterface({ input: process.stdin, output: process.stdout }); const segments []; let text ; let isText false; rl.on(line, (line) { if (line ) { isText true; } else if (!isText) { segments.push(line); } else { text line; rl.close(); } }).on(close, () { const tokens tokenize(segments, text); console.log(tokens.map(token (${token})).join()); });C语言实现#include stdio.h #include stdlib.h #include string.h typedef struct { char **segments; int count; } SegmentList; int compare_segments(const void *a, const void *b) { const char *seg_a *(const char **)a; const char *seg_b *(const char **)b; int len_a strlen(seg_a); int len_b strlen(seg_b); if (len_a len_b) { return strcmp(seg_b, seg_a); } return len_b - len_a; } void tokenize(SegmentList *segments, const char *text, char ***tokens, int *token_count) { *tokens NULL; *token_count 0; int i 0; int n strlen(text); while (i n) { int matched 0; for (int j 0; j segments-count; j) { const char *seg segments-segments[j]; int seg_len strlen(seg); if (i seg_len n strncmp(text i, seg, seg_len) 0) { (*token_count); *tokens realloc(*tokens, *token_count * sizeof(char *)); (*tokens)[*token_count - 1] strdup(seg); i seg_len; matched 1; break; } } if (!matched) { if (text[i] ) { i; } else { int j i; while (j n text[j] ! ) { j; } (*token_count); *tokens realloc(*tokens, *token_count * sizeof(char *)); (*tokens)[*token_count - 1] strndup(text i, j - i); i j; } } } } int main() { SegmentList segments; segments.segments NULL; segments.count 0; char line[1024]; while (fgets(line, sizeof(line), stdin)) { line[strcspn(line, \n)] \0; if (line[0] \0) { break; } segments.count; segments.segments realloc(segments.segments, segments.count * sizeof(char *)); segments.segments[segments.count - 1] strdup(line); } fgets(line, sizeof(line), stdin); line[strcspn(line, \n)] \0; const char *text line; qsort(segments.segments, segments.count, sizeof(char *), compare_segments); char **tokens NULL; int token_count 0; tokenize(segments, text, tokens, token_count); for (int i 0; i token_count; i) { printf((%s), tokens[i]); free(tokens[i]); } printf(\n); free(tokens); for (int i 0; i segments.count; i) { free(segments.segments[i]); } free(segments.segments); return 0; }代码说明预处理分割词将分割词按长度和字典序排序确保优先匹配最长且字典序较大的分割词。分割字符串遍历长字符串依次检查是否有匹配的分割词匹配到的部分作为token未匹配的部分按空格分割。输出结果将所有token用括号包裹并按顺序输出。以上代码实现了题目要求的功能适用于多种编程语言。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

庆阳网站设计费用百度百科官网入口

研发背景: 随着全球数字化进程加速,电子护照(ePassport)已成为国际旅行和身份认证的重要载体。据国际民航组织(ICAO)统计,目前已有超过178个国家和地区签发符合ICAO 9303标准的电子护照。这些护…

张小明 2025/12/29 16:04:07 网站建设

广元商城网站开发wordpress _the_logo

突破限制:一键解决Cursor Pro额度与机器码绑定难题 【免费下载链接】cursor-free-everyday 完全免费, 自动获取新账号,一键重置新额度, 解决机器码问题, 自动满额度 项目地址: https://gitcode.com/gh_mirrors/cu/cursor-free-everyday 还在为Cursor Pro的额…

张小明 2025/12/29 16:03:32 网站建设

响应式网站编码怎吗设置台州网站快速优化排名

在数字化协作日益重要的今天,开源白板工具OpenBoard为团队提供了强大的可视化沟通平台。无论您是需要进行远程会议、在线教学还是创意头脑风暴,这款跨平台工具都能满足您的需求。本文将带您从零开始,全面掌握OpenBoard的安装配置、核心功能使…

张小明 2025/12/29 16:02:57 网站建设

响应式网站原理城市绿化建设英文网站

能帮到你的话,就给个赞吧 😘 文章目录1.方案构想1.冲过来击飞2.分阶段制作3.素材选用1.模型2.特效3.素材迁移1.模型迁移2.素材迁移3.动画混合4.镜头制作1.方案构想 1.冲过来击飞 2.分阶段制作 3.素材选用 1.模型 2.特效 3.素材迁移 1.模型迁移 2.…

张小明 2025/12/29 16:02:24 网站建设

陕西建设招聘信息网站wordpress模板详解

ViGEmBus游戏控制器模拟驱动:5分钟快速上手完全指南 【免费下载链接】ViGEmBus 项目地址: https://gitcode.com/gh_mirrors/vig/ViGEmBus 想要在Windows电脑上使用任意控制器畅玩游戏吗?ViGEmBus作为一款专业的游戏控制器模拟驱动,能…

张小明 2025/12/29 16:01:45 网站建设

wordpress网站被镜像无锡百度网站推广渠道

部门邮箱在日常工作中往往模糊低效,可一旦用于“部门对部门”的正式沟通,就立刻变成了一把不容置疑的“尚方宝剑”。这揭示了它的核心矛盾:一个对内权责不清的工具,却能代表最强的组织意志。其力量源于从“个人请求”升格为“组织…

张小明 2025/12/29 16:01:09 网站建设