個人檔案藍瓶 的分享空間相片部落格清單更多 工具 說明

部落格


    8月25日

    很好奇的一個演算法

    最近在看眾多人寫的code, 發現各人的風格都不同
    有的是直線式思考, 有的會用技巧性的做法
    有的我還真是看不懂啊, 太高深莫測了
    順便很好奇的問一個問題的解法,
    看看路過的人會如何解這個問題?
    蠻簡單的問題, 問題如下
    假設我有一個array內容是{"Mary","Tom","John","Jason","Tony","John","Mary","Tom","Tony","Mary","Tony","Jason","Tom","Tony"}
    所以Tony所在的index為4,8,10,13(index從0開始)
    我希望結果是得到一個字串,裡面內容是由index串起來的,
    結果字串應該為 "4,0,1,2,3,8,5,6,7,10,9,13,11,12"
    本來index串成一個字串應該是"0,1,2,3,4,5,6,7,8,9,10,11,12,13"
    但只要是"Tony"這個字串的index就要排到最前面(本來是最後面),但是因為index 4已經搬到0的前面,
    所以index在4以後的"Tony"的index, 往前搬只能排在3的後面, 以此類推
    問題了解了嗎? 可以留下您的code來一起討論一下嗎?
    很好奇各位的做法會如何... 我自己是有一個做法...嘿嘿

    回應 (3)

    請稍候...
    很抱歉,您輸入的回應過長。請縮短您的回應。
    您尚未輸入內容,請再試一次。
    很抱歉,目前無法新增您的回應,請稍後再試。
    若要新增回應,您的父母必須先給您權限。要求權限
    您的家長已關閉回應功能。
    很抱歉,目前無法刪除您的回應,請稍後再試。
    您已超過每日回應上限次數,請於 24 小時後再試一次。
    由於系統顯示您可能傳送垃圾郵件給其他使用者,因此您帳號中的回應功能已遭停用。 如果您認為自己帳號遭錯誤停用,請連絡 Windows Live 支援
    請完成下列安全檢查,以完成回應。
    您輸入的安全檢查字元必須與圖片或音訊中的字元相符。

    若要新增回應,請以您的 Windows Live ID 登入 (若您使用 Hotmail、Messenger 或 Xbox LIVE,則您已擁有 Windows Live ID)。登入


    沒有 Windows Live ID?註冊

    匿名 的圖片
    jiing 撰寫:
    我那個程式是對的
    4 月 11 日
    Tony撰寫:
    你誤會我的問題了, 我的問題是 我有一個array裡面的內容是{"Mary","Tom","John","Jason","Tony","John","Mary","Tom","Tony","Mary","Tony","Jason","Tom","Tony"}
    index從0開始,所以這些名字的index從左到右串成一個字串就是" 0,1,2,3,4,5,6,7,8,9,10,11,12,13" 
    我希望把順序改為
    {"Tony","Mary","Tom","John","Jason","Tony","John","Mary","Tom","Tony","Mary","Tony","Jason","Tom"}
    對應回原來array的index, 將這些名字的index從左到右串成一個字串就變成"4,0,1,2,3,8,5,6,7,10,9,13,11,12"
    至於改變順序的rule就是遇到"Tony"這個名字就搬到最前面
    大致上就是這樣, 不知道這樣解釋有沒有更清楚一點?
    8 月 31 日
    匿名 的圖片
    jiing 撰寫:
    a = [4, 8, 10, 13];
    b=0:13;
     
    for ix=1:length(a)
       if (ix+1) <=length(a)
           b(a(ix)+1)=a(ix+1)
       end
    end
    c=[a(1) b(1:end-1)]
    8 月 27 日

    引用通告

    此內容的引用通告是:
    http://tony2-6.spaces.live.com/blog/cns!ACAFCD15D41188D0!111.trak
    引述這則內容的部落格