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

玉环哪里有做网站上海有多少家公司和企业

玉环哪里有做网站,上海有多少家公司和企业,做棋牌网站违法吗,自己建网站做代理商OD统一考试 分值#xff1a; 200分 题解#xff1a; Java / Python / C 题目描述 有一个考古学家发现一个石碑#xff0c;但是很可惜发现时其已经断成多段。 原地发现N个断口整齐的石碑碎片#xff0c;为了破解石碑内容#xff0c;考古学家希望有程序能帮忙计算复原后的石… OD统一考试 分值 200分 题解 Java / Python / C 题目描述 有一个考古学家发现一个石碑但是很可惜发现时其已经断成多段。 原地发现N个断口整齐的石碑碎片为了破解石碑内容考古学家希望有程序能帮忙计算复原后的石碑文字组合数你能帮忙吗 备注 如果存在石碑碎片内容完全相同则由于碎片间的顺序不影响复原后的碑文内容仅相同碎片间的位置变化不影响组合 输入描述 第一行输入NN表示石碑碎片的个数 第二行依次输入石碑碎片上的文字内容S共有N组 输出描述 输出石碑文字的组合(按照升序排列)行尾无多余空格 示例1 输入 3 a b c输出 abc acb bac bca cab cba示例2 输入 3 a b ab输出 aab aba baa示例3 输入 3 a b a输出 aabb abab abba baab baba题解 这是一个典型的排列组合问题可以使用回溯算法来生成所有可能的组合。 代码大致描述 主函数main中读取石碑碎片的个数N和每个碎片的文字内容S并进行排序以便后续生成有序的排列组合。。创建一个用于标记是否使用过的数组used和一个用于存储当前组合的容器collect以及一个记录上次结果的字符串lastResult。调用backtrack函数进行回溯生成所有可能的排列组合。在backtrack函数中检查当前组合的长度是否等于石碑碎片的个数N如果是则拼接成字符串并输出避免重复输出相同的排列组合。递归调用backtrack函数尝试不同的组合。在每次递归调用前标记当前石碑碎片为已使用以防止重复使用。递归调用后将标记恢复进行下一轮尝试。 这样通过回溯算法可以遍历所有可能的排列组合最终输出升序排列的石碑文字组合。 Java import java.util.*; /*** author code5bug*/ public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt();String[] cs new String[n];for (int i 0; i n; i) cs[i] in.next();Arrays.sort(cs);Solution solution new Solution(cs, n);solution.backtrack(new ArrayList());} }class Solution {private final String[] cs;private final int n;private String lastResult;private boolean[] used;public Solution(String[] cs, int n) {this.cs cs;this.n n;this.used new boolean[n];}public void backtrack(ListString collect) {if (collect.size() n) {String result String.join(, collect);if (!result.equals(lastResult)) { // 避免重复的结果输出System.out.println(result);lastResult result;}return;}String prev ; // 记录上次有效的选择for (int i 0; i n; i) {if (used[i] || Objects.equals(cs[i], prev)) continue;used[i] true;collect.add(cs[i]);backtrack(collect);prev cs[i];collect.remove(collect.size() - 1);used[i] false;}} } Python n int(input()) cs input().split() cs.sort()last_result None used, collect [False] * n, []def backtrack():global last_result, used, collectif len(collect) n: # 组合完成result .join(collect)if result ! last_result: # 避免重复的结果输出last_result resultprint(last_result)returnprev Nonefor i in range(n):if used[i] or cs[i] prev: # 元素被选中或元素相同continueused[i] Truecollect.append(cs[i])backtrack()collect.pop()prev cs[i]used[i] Falsebacktrack() C #include iostream #include vector #include algorithm #include numericusing namespace std;void backtrack(const vectorstring cs, int n, vectorbool used, vectorstring collect, string lastResult) {if (collect.size() n) {string result accumulate(collect.begin(), collect.end(), string());if (result ! lastResult) {cout result endl;lastResult result;}return;}string prev ;for (int i 0; i n; i) {if (used[i] || cs[i] prev) continue;used[i] true;collect.push_back(cs[i]);backtrack(cs, n, used, collect, lastResult);prev cs[i];collect.pop_back();used[i] false;} }int main() {int n;cin n;vectorstring cs(n);for (int i 0; i n; i) {cin cs[i];}sort(cs.begin(), cs.end());vectorbool used(n, false);vectorstring collect;string lastResult;backtrack(cs, n, used, collect, lastResult);return 0; } 相关练习题 题号题目难易LeetCode 面试题 08.07面试题 08.07. 无重复字符串的排列组合中等LeetCode 4747. 全排列 II中等LeetCode LCR 083LCR 083. 全排列中等 整理题解不易 如果有帮助到您请给点个赞 ‍❤️‍ 和收藏 ⭐让更多的人看到。
http://www.pierceye.com/news/610875/

相关文章:

  • 公司网站建设找谁做网络渠道
  • 网站建设公司 校园网站html5商城网站
  • 自学it做网站厦门网站推广¥做下拉去118cr
  • 汕头市做网站优化国内时事新闻
  • 网站文章来源seowordpress 搜索 分词
  • 网站建设和网络推广微信开发品牌
  • 湛江网站关键词优化百度推广优化技巧
  • 做盗版网站会怎样网页设计规范2018
  • 做个中英文网站多少钱网页设计图片作品
  • iis7 添加php网站网站为什么需要空间
  • 网站到首页排名h5怎么制作的
  • 网站制作教程 pdf下载培训网站制作网站
  • 网站开发文档范例国外服务器租用价格表
  • 六安网站制作费用怎么做百度提交入口网站
  • centos7做网站做pc端网站讯息
  • 驻马店建设网站安徽全过程网站搭建案例
  • 企业网站推广费用wordpress相册汉化版
  • 怎么做正规网站广告网站设计怎么样
  • 深圳营销型网站公司电话云渲染网站开发
  • 生成网站有吗免费的网站建设服务有哪些内容
  • 网站建设制作公司思企互联超级采购小程序怎么注册
  • 燕郊做网站找谁wordpress登录修改
  • 大概开发一个网站多少钱php做网站商城系统怎么样
  • wordpress网站程序员登录百度账号
  • wordpress trac网站优化公司哪家好
  • 网站建设cms系统抖音seo推广外包公司好做吗
  • 南宁商城网站建设logo设计网站生成器
  • 南京电信网站空间扩容无锡大型网站设计公司
  • 网站建设 考核指标wordpress4.9升级失败
  • 什么网站可以做名片网站后台登陆密码忘记