华为OD机试2025A卷 - 最长公共后缀(Java & Python& JS & C++ & C )

本文介绍了华为OD统一考试中的一道题目——最长公共后缀,并提供了C++、Java、JavaScript和Python的解题思路及示例。文章强调了ACM输入输出模式的使用,以及在华为OD机考中遇到原题时如何避免代码查重的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最新华为OD机试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看

题目描述

编写一个函数来查找字符串数组中的最长公共后缀;

如果不存在公共后缀,返回固定字符串: @Zero。

补充说明:

1、字符串长度范围:[2, 1000];

2、字符串中字符取值范围为[1, 126]。

输入描述

[“abc”,“bbc”,“c”]

输出描述

“c”

示例1

输入

 ["abc","bbc","c"]

输出

"c"

说明

返回公共后缀:c

示例2

输入

["aa","bb","cc"]

输出

"@Zero"

说明

不存在公共后缀,返回固定结果:@Zero

解题思路

解题思路

在这个题目中,我们需要寻找一个字符串数组中所有字符串的最长公共后缀。如果没有公共后缀,则返回固定字符串 @Zero。以下是解决此问题的思路:

  1. 初始化公共后缀

    • 选择字符串数组中的第一个字符串作为起始的公共后缀。
  2. 逐个比较

    • 从第二个字符串开始,依次与当前的公共后缀进行比较。
    • 使用一个索引变量 j(从1开始)从后向前检查两个字符串的字符是否相同,直到发现第一个不同字符或者达到字符串的开头。
  3. 更新公共后缀

    • 如果找到不同字符(即当 j 值大于1时),就截取公共后缀的长度,通过 substring 方法更新公共后缀。
    • 如果 j 值等于1,说明第一个字符串的最后一个字符与当前字符串的最后一个字符不同,那么此时就没有公共后缀,直接返回 @Zero
  4. 最终输出

    • 如果经过所有字符串的比较后仍然存在公共后缀,就打印这个公共后缀;否则打印 @Zero

Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值