给一个字符串,表示用’,’分开的人名。
然后给定一个字符串,进行快速人名查找,符合要求的输出。
快速人名查找要求︰人名的每个单词的连续前几位能组成给定字符串,一定要用到每个单词。
第一行是人名,用’,’分开的人名
第二行是 查找字符串
输出满足要求的人名
输入 | zhang san,zhang san san zs |
输出 | zhang san |
描述 | 无 |
输入 | zhang san san,zhang an sa,zhang hang,zhang seng,zhang sen a zhas |
输出 | zhang an sa,zhang seng |
描述 | 无 |
上述内容部分整理自考生的真实反馈以及网络资源的搜集,我们始终尊重原作者的权益。如若发现任何内容侵犯了您的版权,敬请及时与我们取得联系,我们将立即进行删除处理。
此外,本材料后续的解析与代码部分均为我方原创思考与分析,凝聚了我们的心血与智慧。我们恳请各位尊重原创,切勿随意搬运或抄袭,共同维护良好的学术与创作环境。谢谢!
订阅后可看完整内容,试看真题如下:
华为OD机试真题 - 剩余银饰的重量 (D卷,100分)
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
首先,我们需要理解题目的输入和输出要求。题目提供了两行输入,第一行是多个用逗号分隔的人名,第二行是待查找的字符串。我们的目标是找出那些人名,其每个单词的连续前几位能够组成给定的查找字符串,并且必须用到每个单词的至少一部分。
接下来,我们可以按照以下步骤进行解题:
import java.util.ArrayList; import java.util.Scanner; import java.util.StringJoiner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] namea = sc.nextLine().split(","); String abbr = sc.nextLine(); System.out.println(getResult(namea, abbr)); } public static String getResult(String[] namea, String abbr) { ArrayList<String> ana = new ArrayList<>(); for (String name : namea) { String[] parts = name.split(" "); if (parts.length > abbr.length()) continue; if (recursive(parts, 0, abbr, 0)) { ana.add(name); } } return String.join(",", ana); } public static boolean recursive(String[] parts, int parts_index, String abbr, int abbr_index) { if (abbr_index >= abbr.length()) { return parts_index >= parts.length; } if (parts_index >= parts.length) { return false; } String part_name = parts[parts_index]; for (int j = 0; j < part_name.length(); j++) { if (abbr_index < abbr.length() && part_name.charAt(j) == abbr.charAt(abbr_index)) { if (recursive(parts, parts_index + 1, abbr, ++abbr_index)) { return true; } } else { return false; } } return false; } }
#华为od##华为od题库##华为##华为OD##华为OD机试真题#