码迷,mamicode.com
首页 > 移动开发 > 详细

小米面试

时间:2017-09-02 15:46:49      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:遍历   逆序   oid   ever   数组   文件   去除   个数   []   

linux命令处理文本:

awk 将文本文件的内容按行读取,并可以指定分割符号,然后打印出具体某列的值。主要是用来处理列的。例如,某个data文件有多行,每行的字段以分号隔开,现要求打印出第3列的信息:cat data | awk -F ‘;‘ ‘{print $3}‘      或者    awk -F ‘;‘ ‘{print $2}‘ data        (-F指定分隔符)

 

sed命令也是处理每一行,它主要是对每一行的内容进行替换,但是它并没有修改源文件的内容,只是把修改后的内容输出而已。例如:将文本data中每一行中出现book的单词换成books:

sed ‘s/book/books/g‘ data (如果没有g,只能匹配并替换第一次出现的单词,如果有g,则全部替换)。sed -i ‘s/book/books/g‘ data 如果加了-i参数,则直接在文本中替换内容。

 

sort可以对每一行进行排序(按照首字母升序排序),uniq可以去除重复的行,但是必须是相邻的,所以通常需要结合sort命令和uniq命令一起使用。uniq -c 可以输出每行出现的次数(-c 代表count),sort -r 可以逆序排序(-r 代表reverse),head命令默认输出前10行,如果指定输出3行,则head -3。例如,某个data文件有多行,每行有一个单词,输出出现次数top 10 的单词:cat data | sort | uniq -c | sort -r | head 

 

vi编辑一个文本,如果要在文本中显示每一行的行号,则

:set nu

 

 

算法题目:

1.有一个一维数组int a[100],里面存储的是1到100的这100个数,不过是乱序存储;这时把其中某一位置的数值改成-1;请用最优的空间复杂性和时间复杂性求出该位置和值, 请写出代码, 语言不限。

思路:遍历数组得到-1的位置并记录,同时把非-1的值相加得到sum

 void find(int[] nums) {
        int sum=0, idx=-1;
        for(int i=0;i<nums.length;i++){
            if(nums[i]==-1){
                idx=i;
            }else{
                sum+=nums[i];
            }
        }
        System.out.println(5050-sum);
        System.out.println(idx);
    }

 

小米面试

标签:遍历   逆序   oid   ever   数组   文件   去除   个数   []   

原文地址:http://www.cnblogs.com/james111/p/7466517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!