看板 Fortran 關於我們 聯絡資訊
通常,我都是不考慮使用的語言是什麼, 先採用 虛擬碼的方式來表現 解題的方法。 假設,你的資料是 儲存在硬碟的檔案之中, 使用 CHAR*1 CH(1000) 的方式讀進來,放到 CH(1000) 的陣列 裡面。 然後,假設陣列的第一個元素的代號是 1 一共有 MAX 個CHAR 讀進來 IP= 0 JP= IP + 1 ICT= 0 WHILE (JP .LT. MAX) DO { IP= IP + 1 JP= IP + 1 WHILE (CH(JP) .EQ. CH(IP)) { IP= IP + 1 JP= IP + 1 } ! 找到第一個不同 ICT= ICT + 1 DIF(ICT)= JP END DO DIF(1) - DIF(ICT) 所放的,就是 你要的 資料 以上的 演算法,沒有經過驗證, 不過 大致上的 意思到了 有問題的話,再跟我 聯絡 ※ 引述《bennyhsu (阿彬)》之銘言: : 各位大大好,小弟有一個小問題想請問一下 : 假如我這邊有一串資料 : EX: : 000001111112222222333333333334444444444455555555.... : 每個數字的個數都不相同 : 那我要怎麼寫才能找出是在第幾個跳成1,又在第幾個跳成2 : 以此類推.... : 我的想法是,假如上下兩個數字不同的時候就記錄其位置 : 可是我始終寫不出來...麻煩大大們解答 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.20.132.129
bennyhsu:謝謝大大的回答 感恩!!! 02/27 02:45