首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DNA到RNA转录

DNA到RNA转录
EN

Code Golf用户
提问于 2018-02-18 08:41:00
回答 11查看 1.5K关注 0票数 -5

指南

任务

给定一个DNA链,返回它的RNA补体(每个RNA转录)。

DNA和RNA链都是一个核苷酸序列。

DNA中的4个核苷酸为腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和胸腺嘧啶(T)。

RNA中的4个核苷酸为腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和尿嘧啶(U)。

给定一条DNA链,其转录的RNA链是通过用其补体替换每个核苷酸而形成的:

  • G -> C
  • C -> G
  • T -> A
  • A -> U

规则

  • 输入将始终是字符串或数组/字符列表。
  • 输出应该始终是字符串或数组/字符列表。
  • 在输入无效的情况下,应该以字符串或数组/字符列表的形式输出'Invalid Input'
  • 您可以假设您将只获得可打印的ASCII字符。
  • 这是代码高尔夫,所以拥有最少字节的人winsx

示例

'C' -> 'G'

'A' -> 'U'

'ACGTGGTCTTAA' -> 'UGCACCAGAAUU'

'XXX' -> 'Invalid Input'

'ACGTXXXCTTAA' -> 'Invalid Input'

其他信息

这项任务来自强迫症,它由卡特里娜欧文创建,并获得麻省理工学院许可。

EN

回答 11

Code Golf用户

回答已采纳

发布于 2018-02-18 09:21:53

05AB1E,23字节

代码语言:javascript
复制
„—ÄGu©ÃQi®"GUAC"‡ë”ͼî®

在网上试试!

解释

代码语言:javascript
复制
„—ÄGu©                    # push "CATG" and store a copy in register
      Ã                   # keep only those letters of input
       Qi                 # if the result equals the input
         ®"GUAC"‡         # translate "CATG" to "GUAC"
                 ë”Í¼î®   # else, push "Invalid Input"
票数 1
EN

Code Golf用户

发布于 2018-02-18 09:24:57

K (oK) / K4,38字节

解决方案:

代码语言:javascript
复制
(x;"Invalid Input")@|/^x:"CGAU""GCTA"?

在网上试试!

示例:

代码语言:javascript
复制
q)k)(x;"Invalid Input")@|/^x:"CGAU""GCTA"?"C"
"G"
q)k)(x;"Invalid Input")@|/^x:"CGAU""GCTA"?"C"
"G"
q)k)(x;"Invalid Input")@|/^x:"CGAU""GCTA"?"G"
"C"
q)k)(x;"Invalid Input")@|/^x:"CGAU""GCTA"?"ACGTGGTCTTAA"
"UGCACCAGAAUU"
q)k)(x;"Invalid Input")@|/^x:"CGAU""GCTA"?"XXX"
"Invalid Input"
q)k)(x;"Invalid Input")@|/^x:"CGAU""GCTA"?"ACGTXXXCTTAA"
"Invalid Input"

Explanation:

映射是微不足道的。“无效输入”部分的25个字节。

代码语言:javascript
复制
(x;"Invalid Input")@|/^x:"CGAU""GCTA"? / the solution
                               "GCTA"? / return index in left list
                         "CGAU"        / index into this list
                       x:              / save as x
                      ^                / null, any nulls in x?
                    |/                 / take max
                   @                   / index into
( ;               )                    / two item list
   "Invalid Input"                     / result if null found
 x                                     / result if no nulls found
票数 1
EN

Code Golf用户

发布于 2018-02-18 18:17:30

C (clang)或MinGW,110个字节

代码语言:javascript
复制
f(s){for(char*t="GCTA",*o=s=strdup(s),*q;*o;o++)(q=strchr(t,*o))?*o="CGAU"[q-t]:(s="Invalid input!");puts(s);}

在网上试试!

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/156045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档