题解 | #牛群的名字简化#
牛群的名字简化
https://www.nowcoder.com/practice/94ebe4b4ad774eaca23eb8ee6c67124c?tpId=363&tqId=10605830&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param dictionary string字符串一维数组
* @param names string字符串
* @return string字符串
*/
public String replaceNames(String[] dictionary, String names) {
String[] nameArr = names.split(" ");
StringBuilder result = new StringBuilder();
for (String name : nameArr) {
String simplify = getMinSimplify(dictionary, name);
result.append(simplify).append(" ");
}
return result.toString().trim();
}
public String getMinSimplify(String[] dictionary, String str) {
String minSimplify = str;
for (String word : dictionary) {
if (str.startsWith(word) && word.length() < minSimplify.length()) {
minSimplify = word;
}
}
return minSimplify;
}
}
本题知识点分析:
1.字符串
2.数学模拟
3.API函数调用
本题解题思路分析:
1.每次都去尝试获取最短的简写
2.利用startWith和比较与最短简写的长度,如果str包含字典序的字符,并且当前字典序的字符是小于最短简写的长度,那么就重新赋值
3.如果没有被赋值,那么就返回原字符串
4.时间复杂度O(n2)
本题使用编程语言: Java
如果你觉得本篇文章对你有帮助的话,可以点个赞支持一下,感谢~

查看9道真题和解析