本文主要是介绍删列造序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定由
N
个小写字母字符串组成的数组A
,其中每个字符串长度相等。选取一个删除索引序列,对于
A
中的每个字符串,删除对应每个索引处的字符。 所余下的字符串行从上往下读形成列。
比如,有
A = ["abcdef", "uvwxyz"]
,删除索引序列{0, 2, 3}
,删除后A
为["bef", "vyz"]
,A
的列分别为
["b","v"], ["e","y"], ["f","z"]
。(形式上,第 n 列为[A[0][n], A[1][n], ..., A[A.length-1][n]]
)。假设,我们选择了一组删除索引
D
,那么在执行删除操作之后,A
中所剩余的每一列都必须是 非降序 排列的,然后请你返回
D.length
的最小可能值。
public int minDeletionSize(String[] A) {// 先对输入数组进行判断if (A == null || A.length == 0)return 0;if (A.length == 1)return 0;int len = A[0].length(); // 每个字符串的长度int delIdx = 0; // 删除序列for (int i=0; i<len; i++){for (int j=1; j<A.length; j++){if (A[j-1].charAt(i) > A[j].charAt(i)){delIdx++;break;}}}return delIdx;}
这篇关于删列造序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!