c180. DNA 序列比對
Tags : substring 字串 字串反轉 比對 生物資訊 陣列
Accepted rate : 0人/1人 ( 0% ) [非即時]
評分方式:
Special

最近更新 : 2025-11-14 11:40

Content

在分子生物學中,DNA 是由四種鹼基所組成:
A(Adenine)、C(Cytosine)、G(Guanine)、T(Thymine)。
其中,A 與 T 互相配對,而 C 與 G 則彼此對應。
如果將一段 DNA 序列反轉後,再把每個鹼基依照其對應規則替換,就能得到所謂的 「反向互補序列」(Reverse Complement)。
這個概念被廣泛應用於序列比對、生物資訊分析與基因搜尋等領域。

現在,給你兩段由 DNA 鹼基組成的字串:

  • 第一段字串 S(較長)

  • 第二段字串 T(較短)

你的任務是:
請你先將字串 T 轉換成它的反向互補序列,接著檢查這段新序列是否能在 S 中找到匹配的位置。

Input

輸入共兩行:

  • 第 1 行:字串 S(1 ≤ S ≤ 10⁵)

  • 第 2 行:字串 T(1 ≤ T< S)

字串預期只包含大寫英文字母 A、C、G、T。
若包含其他字元,輸出-1。

Output
  • 若找到至少一個匹配位置,請輸出所有位置(1-based),以空白分隔。

  • 若沒有找到,或輸入不合法,請輸出:-1

Sample Input #1
ACGTACGTAC
GT
Sample Output #1
1 5 9
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (100%): 1.0s , <1K
Hint :
  • 本題需要先將第二個字串 T 轉換為它的「反向互補序列」:

    • 先反轉整個字串

    • 再將每個字元依照下列規則替換:

      • A ↔ T

      • C ↔ G

  • 完成反向互補後,請比對此新字串是否出現在第一個字串 S 中。

    • 請注意,本題要求輸出 所有匹配的起始位置(1-based index)

  • 若任一輸入字串包含非 A、C、G、T 的字元,則輸出 -1

  • 若反向互補後的字串未在 S 中出現,也輸出 -1

Tags:
substring 字串 字串反轉 比對 生物資訊 陣列
出處:
2025雲嘉南資訊學科能力第三題 [管理者: stu310102(Heavenly Shogun) ]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」