944 删列造序

给你由 n 个小写字母字符串组成的数组 strs,其中每个字符串长度相等。

这些字符串可以每个一行,排成一个网格。例如,strs = ["abc", "bce", "cae"] 可以排列为:

abc
bce
cae

你需要找出并删除 不是按字典序非严格递增排列的 列。在上面的例子(下标从 0 开始)中,列 0('a''b''c')和列 2('c''e''e')都是按字典序非严格递增排列的,而列 1('b''c''a')不是,所以要删除列 1 。

返回你需要删除的列数。

class Solution {
public:
    int minDeletionSize(vector<string>& strs) {
        //定义列数为单个字符串的长度 
        int l=strs[0].size();
        //行数为字符串数组长度
        int h=strs.size();
        //需要删除的列数
        int count=0;
        //如果字符串数组为空,直接返回0
        if(strs.empty()){
			return 0;
		}
        //按列遍历
        for(int j=0;j<l;j++){
            //按行遍历
			for(int i=0;i<h-1;i++){
                //如果当前行字符大于下一行字符
				if(strs[i][j]>strs[i+1][j]){
                    //需要删除的列加1
					count++;
                    //行循环开始下一列
					break;
				}
			}
		}
		return count;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值