中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pipes中怎么利用LeetCode轉置文件

發布時間:2021-08-05 18:01:57 來源:億速云 閱讀:120 作者:Leah 欄目:開發技術

這篇文章給大家介紹Pipes中怎么利用LeetCode轉置文件,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

[LeetCode] 194.Transpose File 轉置文件

Given a text file file.txt, transpose its content.

You may assume that each row has the same number of columns and each field is separated by the ' ' character.

For example, if file.txt has the following content:

name age
alice 21
ryan 30

Output the following:

name alice ryan
age 21 30


這道題讓我們轉置一個文件,其實感覺就是把文本內容當做了一個矩陣,每個單詞空格隔開看做是矩陣中的一個元素,然后將轉置后的內容打印出來。那么我們先來看使用awk關鍵字的做法。其中NF表示當前記錄中的字段個數,就是有多少列,NR表示已經讀出的記錄數,就是行號,從1開始。那么在這里NF是2,因為文本只有兩列,這里面這個for循環還跟我們通常所熟悉for循環不太一樣,通常我們以為i只能是1和2,然后循環就結束了,而這里的i實際上遍歷的數字為1,2,1,2,1,2,我們可能看到實際上循環了3遍1和2,而行數正好是3,可能人家就是這個機制吧。知道了上面這些,那么下面的代碼就不難理解了,遍歷過程如下:

i = 1, s = [name]

i = 2, s = [name; age]

i = 1, s = [name alice; age]

i = 2, s = [name alice; age 21]

i = 1, s = [name alice ryan; age 21]

i = 2, s = [name alice ryan; age 21 30]

然后我們再將s中的各行打印出來即可,參見代碼如下:

解法一:

awk '{
    for (i = 1; i <= NF; ++i) {
        if (NR == 1) s[i] = $i;
        else s[i] = s[i] " " $i;
    }
} END {
    for (i = 1; s[i] != ""; ++i) {
        print s[i];
    }
}' file.txt

下面這種方法和上面的思路完全一樣,但是代碼風格不一樣,上面是C語言風格,而這個完全就是Bash腳本的風格了,我們用read關鍵字,我們可以查看read的用法read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...]。那么我們知道-a表示數組,將讀出的每行內容存入數組line中,那么下一行for中的一堆特殊字符肯定讓你頭暈眼花,其實我也不能算特別理解下面的代碼,大概覺得跟上面的思路一樣,求大神來具體給講解下哈:

解法二:

while read -a line; do
    for ((i = 0; i < "${#line[@]}"; ++i)); do
        a[$i]="${a[$i]} ${line[$i]}"
    done
done < file.txt
for ((i = 0; i < ${#a[@]}; ++i)); do
    echo ${a[i]}
done

關于Pipes中怎么利用LeetCode轉置文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南江县| 石嘴山市| 金平| 霍山县| 班戈县| 巴青县| 新邵县| 哈密市| 和平县| 奉新县| 云霄县| 高陵县| 唐河县| 阿拉善盟| 永顺县| 临澧县| 原阳县| 乡城县| 乌拉特后旗| 措美县| 青铜峡市| 专栏| 鄂尔多斯市| 红原县| 南充市| 湛江市| 贵德县| 临邑县| 衡东县| 都安| 收藏| 磴口县| 中阳县| 喀喇沁旗| 富源县| 永靖县| 广元市| 自治县| 重庆市| 山丹县| 随州市|