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

网站开发需要先学数据库么北京市建设工程第四检测所网站

网站开发需要先学数据库么,北京市建设工程第四检测所网站,今天第四针最新消息,购物网站页面设计思路2025 B卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《最长…

在这里插入图片描述

2025 B卷 100分 题型

本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析;
并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式!

本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》

华为OD机试真题《最长的顺子》:


目录

    • 题目名称:最长的顺子
      • 题目描述
    • Java
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
      • 综合分析
    • python
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
      • 综合分析
    • JavaScript
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
      • 综合分析
    • C++
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
        • 示例1输入:
        • 示例2输入(无顺子):
        • 示例3输入(完整顺子):
      • 综合分析
    • C语言
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
        • 示例1输入:
        • 示例2输入(无顺子):
        • 示例3输入(最长顺子):
      • 综合分析
    • GO
      • 问题分析
      • 解题思路
      • 代码实现
      • 代码详细解析
      • 示例测试
        • 示例1输入:
        • 示例2输入(无顺子):
        • 示例3输入(最长顺子):
      • 综合分析


题目名称:最长的顺子


知识点:字符串、动态规划/滑动窗口、逻辑处理
时间限制:1秒
空间限制:256MB
语言限制:不限


题目描述

输入当前手牌和已出牌,计算对手可能组成的最长顺子(连续5-12张牌,不含2和大小王)。若存在多个最长顺子,输出牌面最大的那个,否则返回"NO-CHAIN"。

规则说明

  1. 顺子定义:连续递增的牌序列,范围从3到A(3<4<5<6<7<8<9<10<J<Q<K<A),不含2、B(小王)、C(大王)。
  2. 输入格式
    • 第一行为当前手牌(如 3-3-4-5-A
    • 第二行为已出牌(如 A-4-5-6-7
  3. 输出格式:最长顺子,若长度相同则输出牌面最大的(如 9-10-J-Q-K-A 优于 5-6-7-8-9)。
  4. 数据约束:每张牌初始有4张(除大小王),总牌数为54张。

输入示例

3-3-4-4-5-A-5-6-2-8-3-9-10-Q-7-K-J-10-B  
A-4-5-8-8-10-C-6-7-8  

输出示例

9-10-J-Q-K-A  

Java

问题分析

我们需要找到对手可能组成的最长顺子。顺子由3到A的连续牌组成,不含2和大小王。输出最长顺子,若存在多个相同长度的,选择牌面最大的那个。若无法组成,返回"NO-CHAIN"。

解题思路

  1. 统计剩余牌数:根据手牌和已出牌,计算每个有效牌的剩余数量。
  2. 滑动窗口遍历:从每个可能的起始牌开始,尽可能向右扩展窗口,直到遇到剩余不足的牌。
  3. 选择最优结果:记录最长窗口,若长度相同则选择末尾最大的窗口。

代码实现

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 读取输入的两行并分割成牌列表String handInput = scanner.nextLine().trim();String playedInput = scanner.nextLine().trim();List<String> allCards = new ArrayList<>();if (!handInput.isEmpty()) {allCards.addAll(Arrays.asList(handInput.split("-")));}if (!playedInput.isEmpty()) {allCards.addAll(Arrays.asList(playedInput.split("-")));}// 有效牌的顺序和集合String[] order = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};Set<String> validCards = new HashSet<>(Arrays.asList(order));// 统计每个牌的出现次数Map<String, Integer> countMap = new HashMap<>();for (String card : allCards) {if (validCards.contains(card)) {countMap.put(card, countMap.getOrDefault(card, 0) + 1);}}// 计算每个牌的剩余次数int[] remain = new int[order.length];for (int i = 0; i < order.length; i++) {String card = order[i];int used = countMap.getOrDefault(card, 0);remain[i] = 4 - used; // 每张牌最多4张}// 滑动窗口遍历寻找最长顺子int maxLen = 0;int bestStart = 0;int bestEnd = 0;for (int i = 0; i < order.length; i++) {if (remain[i] <= 0) continue; // 起始牌必须可用int currentEnd = i;// 向右扩展窗口,直到遇到不可用的牌for (int j = i; j < order.length; j++) {if (remain[j] <= 0) break;currentEnd = j;}int currentLen = currentEnd - i + 1;// 更新最长且牌面最大的顺子if (currentLen >= 5) {if (currentLen > maxLen || (currentLen == maxLen && currentEnd > bestEnd)) {maxLen = currentLen;bestStart = i;bestEnd = currentEnd;}}}// 输出结果if (maxLen >= 5) {List<String> result = new ArrayList<>();for (int i = bestStart; i <= bestEnd; i++) {result.add(order[i]);}System.out.println(String.join("-", result));} else {System.out.println("NO-CHAIN");}}
}

代码详细解析

  1. 输入处理:读取手牌和已出牌,分割为列表。
  2. 有效牌集合:定义合法的顺子牌和顺序。
  3. 统计次数:遍历所有牌,统计每个有效牌的出现次数。
  4. 剩余计算:每种牌最多4张,剩余次数为4 - 已用次数
  5. 滑动窗口
    • 外层遍历每个起始点i,若该牌剩余可用则继续。
    • 内层扩展窗口j,直到遇到剩余为0的牌,记录窗口结束位置。
    • 更新最长且最大的顺子。
  6. 结果输出:根据窗口生成顺子字符串或输出“NO-CHAIN”。

示例测试

示例1输入

3-3-4-4-5-A-5-6-2-8-3-9-10-Q-7-K-J-10-B  
A-4-5-8-8-10-C-6-7-8  

输出9-10-J-Q-K-A
解析:剩余牌中9到A的连续序列最长且牌面最大。

示例2输入(无法形成顺子):

3-3-3-3  
4-4-4-4  

输出NO-CHAIN

示例3输入(最长顺子):

3-4-5-6-7-8-9-10-J-Q-K-A  
(空已出牌)

输出3-4-5-6-7-8-9-10-J-Q-K-A

综合分析

  1. 时间复杂度:O(n²),n为有效牌数量(12),双重循环遍历。
  2. 空间复杂度:O(n),存储剩余次数和牌顺序。
  3. 优势:滑动窗口确保找到最优解,处理高效。
  4. 适用场景:适用于题目约束的小规模输入,快速找到最长顺子。

python

问题分析

我们需要找到对手可能组成的最长顺子。顺子由3到A的连续牌组成,不含2和大小王。输出最长顺子,若存在多个相同长度的,选择牌面最大的那个。若无法组成,返回"NO-CHAIN"。


解题思路

  1. 输入处理:将手牌和已出牌合并,统计每张牌的出现次数。
  2. 剩余牌计算:每张牌最多4张,减去已出现的次数得到剩余数量。
  3. 滑动窗口遍历:从每个可能的起点出发,寻找最长的连续可用牌序列。
  4. 最优顺子选择:记录最长且最大的顺子。

代码实现

def main():# 读取输入的两行数据hand = input().strip().split('-') if input().strip() != '' else []played = input().strip().split('-') if input().strip() != '' else []all_cards = hand + played# 定义有效牌的顺序(从3到A)order = ["3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"]valid_cards = set(order)  # 用于快速判断是否为有效牌# 统计每张牌的使用次数count 

文章转载自:

http://04LpmkSL.dpsfz.cn
http://gkh7Ql0Y.dpsfz.cn
http://8KUBsko9.dpsfz.cn
http://sNscSCMO.dpsfz.cn
http://wHZOUYR6.dpsfz.cn
http://6XdyriC6.dpsfz.cn
http://WRmwTa8U.dpsfz.cn
http://SlEhmVTN.dpsfz.cn
http://bxXByrWg.dpsfz.cn
http://LWoqii3B.dpsfz.cn
http://GMT4E3xk.dpsfz.cn
http://PvCDr7v3.dpsfz.cn
http://ORzz7SbS.dpsfz.cn
http://N2kYs13I.dpsfz.cn
http://LeOMiW16.dpsfz.cn
http://ydLH585X.dpsfz.cn
http://csx5LVB1.dpsfz.cn
http://5i4VMcwN.dpsfz.cn
http://RSLx8iSc.dpsfz.cn
http://EsmtyG89.dpsfz.cn
http://9eqEDyrX.dpsfz.cn
http://0pxPr5vK.dpsfz.cn
http://aXRZQ6EP.dpsfz.cn
http://Pwd1VnBD.dpsfz.cn
http://hmc9N4U4.dpsfz.cn
http://ibHYeD5w.dpsfz.cn
http://CLzjmnMV.dpsfz.cn
http://hgSeLxxd.dpsfz.cn
http://OhaQiYl5.dpsfz.cn
http://mXNp4zfO.dpsfz.cn
http://www.dtcms.com/wzjs/679180.html

相关文章:

  • 在线网站建设哪个正规dw 网页设计与制作教程
  • 典型的企业网站网站打包app
  • 设计软件网站拉扎斯网络科技上海有限公司
  • 网站菜单模板wordpress微信打赏
  • 国外客户推广网站广东重工建设监理有限公司官方网站
  • 联系方式 响应式网站粉末涂料 技术支持 东莞网站建设
  • 可视化设计最重要的是确定网站的快速做网站哪家好
  • 做欧美市场的网站短链接在线转换
  • 网站建设的流程推广方案方法网站目录
  • 玉树营销网站建设多少钱如何查域名备案信息查询
  • 做图表的网站知乎服务器安装WordPress没有权限访问
  • 龙海网站开发企业图标设计大全
  • 山东建设厅网站首页怎么用织梦做自己的网站
  • 上海网站建站建设服务朝阳网站制作公司
  • 色块布局网站首页模板超炫网站页面
  • 百度站长平台账号海报图片怎么设计制作
  • 网站后台管理系统有哪些旅游网络营销方案
  • 天津建设监理协会网站网站建设与维护 课件
  • 历史文化类网站源码郴州网站设计公司
  • 织梦cms零基础做网站微信公众平台怎么做微网站
  • 苏州网站建设上往建站广东省公共资源交易中心平台
  • 建设通属于官方网站wordpress快速发文插件
  • 申报教学成果奖的网站建设汶上网站开发
  • 2017年网站设计好看模板大全
  • 充值话费网站建设太原西北建设有限公司网站
  • 常营网站建设重庆市住房和城乡建设厅网站首页
  • 怎么进入网站管理页面网页设计图片向左移是什么代码
  • 资阳地网站seo怎么做这个购物网站
  • 广州市研发网站建设多少钱注册公司选名字
  • 建立网站可以赚钱吗国内专业的seo机构