Re: [問題] 在vector中合併符合條件的element

作者: descent (「雄辯是銀,沉默是金」)   2017-06-07 00:15:31
※ 引述《bulls5566 (公牛5566)》之銘言:
: 開發平台(Platform): (Ex: Win10, Linux, ...)
: Win8.1
: 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
: GCC
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: NO
: 問題(Question):
: 我最近PYTHON剛轉入C++
: 雖說知道C++文字處理相較PYTHON困難
: 但還是想投入,希望能上手
: 我目前卡住了
: 我想把INPUT 變成 OUTPUT那種格式
: 目前已經把INPUT的資料讀檔丟進vector裡
: 想要從Vector中,去處理文字
: 我想要像output那樣
: 每一行第一個數字顯示這一行共有幾組編碼
: 例如 1 xy 2 , xy 2 就是一組編碼
: 又如 5 R 1004 I 5678 E 2000 R 8002 E 7001
: R 1004 / I 5678 / E 2000 / R 8002 / E 7001 各自都是一組編碼
: 但目前發現,空白也是vector一個element,單一的數字也是element,xy中x和y各自都是
: 獨立的element
: 想要請問一下如何在vector中,只要element之間沒有space,就合併成一個element
: 例如 x和y合併 / 1 0 0 4 合併成1004
: 而且又要排成output的格式
: 也就是每個文字之間都空一格
: 餵入的資料(Input):
: 1
: xy 2
: 2 z xy
你好, 我看不懂規則,
首行的 1 抓 xy 2,
手行 2 抓 z xy,
怎麼區分 1 和 2 的差別?
: 5 R 1004 I 5678
: E 2000 R
: 8002 E 7001 0 1 z
這首行是 8002 不就要抓 8002 個編碼?
: 6 R 8001 E 1000 E
: 1000 E 3000 R 1002 A 1010
: 0
: 1
: z
: 2
: R
: 5001
: E 4000
: 1 z 2
: 2
: xy z
: 3 A 8000
: E 1001 E 2000
: 預期的正確結果(Expected Output):
: 1 xy 2
: 2 z xy
: 5 R 1004 I 5678 E 2000 R 8002 E 7001
: 0
: 1 z
: 6 R 8001 E 1000 E 1000 E 3000 R 1002 A 1010
: 0
: 1 z
: 2 R 5001 E 4000
: 1 z 2
: 2 xy z
: 3 A 8000 E 1001 E 2000
: 錯誤結果(Wrong Output):
作者: hunandy14 (Charlott.HonG)   2017-06-07 01:14:00
從正確結果來看比較容易理解,就是項目有英文數字但是數字不是必要的,有可能沒有開頭為1就代表後面至少有1組英文,但不一定帶數字
作者: moebear (萌熊)   2017-06-07 02:26:00
我覺得這輸入資料滿難處理的 第一行沒東西 2/3行的2難辨
作者: libertyleave (SSLin)   2017-06-09 10:42:00
這困難點就在於編碼數字不是必要

Links booklink

Contact Us: admin [ a t ] ucptt.com