最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pipes實現(xiàn)LeetCode(194.轉(zhuǎn)置文件)

 更新時間:2021年08月05日 15:04:02   作者:Grandyang  
這篇文章主要介紹了Pipes實現(xiàn)LeetCode(194.轉(zhuǎn)置文件),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

[LeetCode] 194.Transpose File 轉(zhuǎn)置文件

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


這道題讓我們轉(zhuǎn)置一個文件,其實感覺就是把文本內(nèi)容當做了一個矩陣,每個單詞空格隔開看做是矩陣中的一個元素,然后將轉(zhuǎn)置后的內(nèi)容打印出來。那么我們先來看使用awk關鍵字的做法。其中NF表示當前記錄中的字段個數(shù),就是有多少列,NR表示已經(jīng)讀出的記錄數(shù),就是行號,從1開始。那么在這里NF是2,因為文本只有兩列,這里面這個for循環(huán)還跟我們通常所熟悉for循環(huán)不太一樣,通常我們以為i只能是1和2,然后循環(huán)就結束了,而這里的i實際上遍歷的數(shù)字為1,2,1,2,1,2,我們可能看到實際上循環(huán)了3遍1和2,而行數(shù)正好是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表示數(shù)組,將讀出的每行內(nèi)容存入數(shù)組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

參考資料:

https://leetcode.com/problems/transpose-file/

https://leetcode.com/problems/transpose-file/discuss/55522/AC-Solution%3A-8-lines-only-in-pure-Bash

https://leetcode.com/problems/transpose-file/discuss/55502/AC-solution-using-awk-and-statement-just-like-C.

到此這篇關于Pipes實現(xiàn)LeetCode(194.轉(zhuǎn)置文件)的文章就介紹到這了,更多相關Pipes實現(xiàn)轉(zhuǎn)置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 探討編寫int strlen(char *strDest);不允許定義變量的問題

    探討編寫int strlen(char *strDest);不允許定義變量的問題

    本篇文章是對編寫int strlen(char *strDest);不允許定義變量的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++使用tinyxml庫處理XML文件

    C++使用tinyxml庫處理XML文件

    TinyXML是一個開源的解析XML的解析庫,能夠用于C++,能夠在Windows或Linux中編譯,這個解析庫的模型通過解析XML文件,然后在內(nèi)存中生成DOM模型,從而讓我們很方便的遍歷這棵XML樹,本文為大家介紹的是使用tinyxml庫處理XML文件,需要的可以參考一下
    2023-07-07
  • 詳細解讀C++編程中的匿名類類型和位域

    詳細解讀C++編程中的匿名類類型和位域

    這篇文章主要介紹了C++編程中的匿名類類型和位域,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2016-01-01
  • C++ OpenCV繪制簡易直方圖DrawHistImg

    C++ OpenCV繪制簡易直方圖DrawHistImg

    本文主要介紹了一個能繪制簡易直方圖的簡單函數(shù)DrawHistImg,可以幫助大家快速掌握繪制的原理,可以根據(jù)自己的創(chuàng)意對其進行改善和補充。需要的朋友可以參考一下
    2021-12-12
  • C++ 私有析構函數(shù)的作用示例詳解

    C++ 私有析構函數(shù)的作用示例詳解

    這篇文章主要介紹了C++ 私有析構函數(shù)的作用,私有析構函數(shù)不會影響棧上對象的自動析構,它們會在其作用域結束時自動調(diào)用析構函數(shù)。私有析構函數(shù)主要影響的是對堆上對象的顯式刪除操作,需要的朋友可以參考下
    2023-06-06
  • opencv3/C++ 離散余弦變換DCT方式

    opencv3/C++ 離散余弦變換DCT方式

    今天小編就為大家分享一篇opencv3/C++ 離散余弦變換DCT方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C++實現(xiàn)簡易圖書館管理系統(tǒng)

    C++實現(xiàn)簡易圖書館管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡易圖書館管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++實現(xiàn)FTP綜合應用詳解

    C++實現(xiàn)FTP綜合應用詳解

    這篇文章主要為大家詳細介紹了C++實現(xiàn)FTP綜合應用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Qt使用SqlLite實現(xiàn)權限管理的示例代碼

    Qt使用SqlLite實現(xiàn)權限管理的示例代碼

    本文主要介紹了Qt使用SqlLite實現(xiàn)權限管理的示例代碼,管理員針對不同人員進行權限設定,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • C語言 數(shù)據(jù)結構與算法之字符串詳解

    C語言 數(shù)據(jù)結構與算法之字符串詳解

    這篇文章將帶大家深入了解C語言數(shù)據(jù)結構與算法中的字符串,文中主要是介紹了字符串的定義、字符串的比較以及一些串的抽象數(shù)據(jù)類型,感興趣的可以學習一下
    2022-01-01

最新評論

北海市| 射洪县| 陆川县| 沂源县| 毕节市| 固安县| 成都市| 张家口市| 张家港市| 涟源市| 虞城县| 抚顺县| 时尚| 化州市| 赫章县| 文昌市| 金山区| 江源县| 大英县| 松桃| 基隆市| 芮城县| 微博| 连山| 香河县| 彰化县| 新乡县| 奉新县| 高唐县| 奉化市| 吴旗县| 高唐县| 休宁县| 昌邑市| 扶绥县| 伊宁市| 长岭县| 山东省| 五家渠市| 博兴县| 沅陵县|