비밀 언어로 변환


9

"오늘은 좋은 날입니다"와 같이 문자열을 입력하는 언어로 어떤 코드를 작성하고 (구두는 없습니다) "비밀 언어"로 변환하십시오. 다음은 "비밀 언어"의 규칙입니다.

  • a = c, b = d, c = e 등 (y = a 및 z = b)
  • 각 단어를 공백으로 분리
  • 적절한 대문자가 있는지 확인하십시오

예:

Input: "Today is a great day"

Output: "Vqfca ku c itgcv fca"

인기 콘테스트입니다. 다른 사용자는 대부분의 "포인트까지"아직 "고유 한"코드를 찾아서 포인트를 제공해야합니다.

도전 과제 : 나는 드문 프로그래밍 언어를 찾고 있었고 Piet ( esolang ) 라는 언어를 찾았습니다 . 나는이 언어로 그것을 쓰도록 누군가에게 도전한다.


그렇지 x=z, y=a, z=b않습니까?
r3mainer

당신은 맞다 "duh":)
Vik P

3
내가 깨달았 때까지 혼란 한 a=cIS를 a -> c.
저스틴


2
rot13과 rot2는 모두 다른 키 (13과 2)를 가진 시저 암호 입니다.
Sylwester

답변:


18

스몰 토크 (Smalltalk / X), 29 27 자

나는 운이 좋다-그것은 이미 String 클래스에있다 :

'Today is a great day' rot:2
    -> 'Vqfca ku c itgcv fca'

I / O를 추가하면 다음과 같이됩니다.

(Stdin nextLine rot:2)print

아래 문 손잡이의 난독 한 예의 정신에서 어떻습니까?

Parser evaluate:('(Uvfkp pgzvNkpg tqv:2)rtkpvPN' rot:-2)

2
스몰 토크 솔루션을 볼 줄은 몰랐어요!
칫솔

13

루비, 난 독판 (주석 포함)

나는 전체를 읽는 것이 좋습니다. 나는 그것이 매우 재미 있다는 것을 알았다.)

$s='';class Module;def const_missing c

# MAGIC:
$s+="#{c}".split("#{$;}").map{|x|x.ord-8**2}.reduce(:"#{43.chr}").chr;end;end

              # My commentary ;)

ZZZY          # ?
YAYYY         # Oookay; you seem excited
Yaz           # Typo?
Yay           # Better
JEEEEEEF      # You misspelled Jeff's name
LAZZZY        # Yes, you are very lazy
Yax           # Another typo...
LLAMA         # Definitely not completely random at all...
EEEEEEEEEEEEE # Ouch my ears
IIIII         # Ouch stop
ASDFASDFASDF  # I SAID STOP BANGING ON THE KEYBOARD
YUMMY         # ... you eat keyboards?
IIIII         # Stop!
YUMMYY        # Why are you eating your keyboard
LLAMA         # That doesn't make sense :(
VV            # :(
LLAMA         # Could you stop saying that?!
CODEGOLF      # Yay, one of my favorite SE sites! :D
VW            # I don't drive
ASDFASDFASDF  # Why do you keep banging on your keyboard?!?!
EEEEEEEEEEEEE # No
VVV           # Stop
HELLOo        # ...it's a little late for a greeting, isn't it?
DOGS          # ...
OOOOOo        # No, you're not a ghost.
HELLOOOO      # Just a *bit* late.
NNNNNNN       # Huh?
LLAMA         # I said to stop.

print eval$s

작동 방식에 대한 힌트 (스포일러, 호버 표시) :

이 코드는 문자열을 작성한 다음 평가합니다.

그것은 사용하는 const_missing문자로 문자열의 문자를 구축하기 위해.

그것이 끝나는 문자열은 gets.tr'A-Za-z','C-ZABc-zab'입니다.


해설이 문제의 채팅의 일부처럼 읽 codegolf.stackexchange.com/questions/20914/who-is-this-chatbot/...

13

추신

HQ는 지금부터 모든 요원들이 특별한 일급 비밀 글꼴을 사용하여 (전자 채널이 너무 신뢰할 수없는 것으로 증명 된) 인쇄 된 형태로만 통신을 수신해야한다고 요구합니다. 이 최고 비밀 절차를 인쇄 소프트웨어의 프롤로그에 포함시키는 것은 귀하의 책임입니다.

/define_Secret_font {
    /Secret_font
    /Coronet findfont dup 
    /Encoding get 
    aload pop 256 array astore 
    /secret_proc {
        2 copy
        26 getinterval aload pop 
        26 -2 roll 26 array astore
        putinterval
    } def
    dup 65 secret_proc
    dup 97 secret_proc
    exch dup length dict dup
    3 -1 roll {put dup} forall
    exch /Encoding 4 -1 roll put 
    definefont pop
} def

그리고 그 글꼴 만 허용됩니다. 예 :

define_Secret_font
/Secret_font 36 selectfont
0 841 translate
20 -60 moveto
(Today is a great day) show
20 -120 moveto
(Programming Puzzles & Code Golf) show
showpage

그리고 그것이 인쇄되는 것입니다. 여기에 이미지 설명을 입력하십시오


11

세게 때리다

권위 있는.

tr A-Za-z C-ZABc-zab

예:

$ tr A-Za-z C-ZABc-zab <<< "Today is a great day"
Vqfca ku c itgcv fca

나는 당신이 따옴표가 필요하지 않다고 생각합니다.
marinus

@marinus 당신이 맞아요, 내가 바꿀 게요.
daniero

5

DFSORT (IBM 메인 프레임 정렬 프로그램)

 OPTION COPY
 INREC BUILD=(1,80,TRAN=ALTSEQ)

1 열에서 SORT 제어문을 시작할 수 없습니다.

위의 내용이 저절로 작동하려면 기본 설치 대체 변환 표를 변경하여 대문자와 소문자의 모든 값을 오프셋하고 마지막 두 글자를 감싸 야합니다.

기본 테이블을 변경하지 않고 필요한 모든 16 진 값 쌍을 나열하는 ALTSEQ 문이 필요합니다 (16 진 코드부터 바로 16 진 코드, 각 16 진 값 쌍은 쉼표로 구분됨).

 OPTION COPY
 INREC BUILD=(1,80,TRAN=ALTSEQ)
 ALTSEQ CODE=(xxyy,...)

따라서 대문자 EBCDIC A를 C로, B를 D로 얻으려면 :

대체 코드 = (C1C3, C2C4)

전체적으로, 그것은 오류가 발생하기 쉬운 많은 타이핑 일 것입니다. 따라서 다른 SORT 단계를 사용 하여이 단계의 제어 카드를 생성하고 SORT가 새로운 단계에서 생성 된 데이터 세트에서 읽도록하십시오.

물론 "번역 테이블"을 지원하는 모든 언어의 경우 번역 테이블을 변경하는 것만 큼 쉽습니다. 특정 코드 페이지가있는 멋진 COBOL 프로그램이며 한 줄의 COBOL 절차 코드 (그리고 모든 경우에 필요한 COBOL의 필수 줄)에서 수행 할 수 있습니다 (이 특별한 경우에는 그다지 많지 않습니다).

오, 1,80은 텍스트를 포함 할 "카드 이미지"입니다. 아마도 첫 번째 실행에서 모두 대문자로 표시됩니다 ...


+1. ROT2에 DFSORT를 사용하는 것은 정말 독특합니다.
Abhijit

3

C, 75 바이트

main(c){while((c=getchar())>0)putchar(isalpha(c)?(c&224)+((c&31)+2)%26:c);}

예:

$echo "Today is a great day" |./a.out
Vqfca ku c itgcv fca

EOF가 -1이라고 가정하면 비트를 사용하여 ~(c=getchar())1 개의 문자를 저장 하지 않을 수 있습니다
user12205

그리고 질문 이후에는 구두점은 당신이 그것을 테스트 할 수 있도록하는 유일한 비 알파벳 문자, 공간도 없다라고 c-32당신에게 6 문자 저장하는 대신에
user12205

이것은 코드 골프가 아닌 인기 경연 대회입니다
Mhmd

코드 골프는 이제 인기와 반대 되는가?
Desty

@ user689 네 말이 맞아 죄송하지만 질문을주의 깊게 읽지 못했습니다. 이 코드는 삼항 연산자와 no로 한 줄로 작성되고 int문자 수도 제공되므로 코드 골프라고 가정했습니다. 죄송합니다.
user12205

3

파이썬

a = list('abcdefghijklmnopqrstuvwxyz')
b = list('yzabcdefghijklmnopqrstuvwx')

c = {}

#generate conversion dictionary

for i in range(len(a)):
    c[a[i]] = b[i]

instring = "the weather is very nice today"

outstring = ""

for i in list(instring):
    try:
        outstring += c[i]
    except:
        outstring += i

print outstring

산출:

rfc ucyrfcp gq tcpw lgac rmbyw


(1) +3맞습니까? (2) 많은 것을 인라인하여 더 복잡하게 만들 수 있습니다. (즉, 여기 경향을 보인다)
사이먼 쿠앙

b = a[2:] + a[:2]적은 오타가 발생하기 쉬운, 그리고 문자열을 변환 할 필요 없을 것 같다 것이다 aA를list
토비아스 Kienzler

c = dict(zip(a,b)). 그리고 except너무 일반적이어서는 안됩니다.except KeyError
Tobias Kienzler

str연결이 매우 느립니다. 를 list만들고 함께 결합하는 것이 훨씬 좋습니다.
yegle

3

자바 스크립트

// setup alphabet and secret rotated alphabet
//
var alpha=' abcdefghijklmnopqrstuvwxyz'
var rotor=' cdefghijklmnopqrstuvwxyzab'
alpha+=alpha.toUpperCase()
rotor+=rotor.toUpperCase()

function encrypt(str) {
 return crypt(str, alpha, rotor)
}

function decrypt(str) {
 return crypt(str, rotor, alpha)
}

// swap position of char from one dictionary to the other
function crypt(msg, d1, d2) {
 var out=''
 var len=str.length
 for(var i=0; i < len; i++) {
  var c = msg.charAt(i)
  var j = d1.indexOf(c)
  out += d2.charAt(j)
 }
 return out
}

3

PHP

그래도 가장 짧은 것은 아닙니다!

라이브 예 : https://eval.in/102173

<?php
$str = 'Today is a great day';
$out = implode('', array_map(function ($val) {
  if ($val == ' ') return ' ';
  $c = ord($val)+2;

  if (ctype_lower($val)) {
    if ($c > ord('z')) {
      return chr(ord('`') + ($c - ord('z')));
    }
    return chr($c);
  }
  else {
    if ($c > ord('Z')) {
      return chr(ord('A') + ($c - ord('Z')));
    }
    return chr($c);
  }  
}, str_split($str)));

var_dump($out);

노트 :

ord('`') = ord('a') - 1

3

TI-Basic (TI-83 그래프 계산기에서 실행되는 언어)

:ClrHome  
:" abcdefghijklmnopqrstuvwxyz" //all symbols that can be interpreted  
:Ans+Ans+Ans->Str1  
:Menu("crippter","encript",1,"decript",2  
:Lbl 2  
:1->C  
:Lbl 1  
:if not(C)  
:Imput ">",Str2  
:if C  
:Imput "<",Str2  
:length(Str2)->D  
:lenght(Str1)/3->E  
:if not(C)  
:Then  
:randInt(1,E)->B  
:sub(Str1,B,1)->Str3  
:Else  
:inString(Str1,sub(Str2,1,1),1)->B  
":"->Str3  
:For(X,1+C,D  
:inString(Str1,sub(Str2,X,1)->A  
:if not(C  
:A+E-B-X->A  
:if C  
:A+B+X-1->A  
:Str3+sub(Str1,A,1)->Str3  
:End  
:if C  
:sub(Str3,2,D-1)->Str3  
:Pause Str3  
:Goto A  

이것은 훌륭한 암호화 소프트웨어입니다 (TI-83 용). ti-83이란 ti-83 또는 ti-84 제품군의 계산기를 의미합니다. "->"는 "STO>"에 의해 액세스되는 "STORE"를 의미합니다.


3

루비 40 32

p gets.tr("A-XY-Za-xy-z","C-ZA-Bc-za-b") 

업데이트 (danieros bash 솔루션에서 볼 수 있음) :

p gets.tr("A-Za-z","C-ZABc-zab")

3

자바, 실제로 이해할 수 있습니다.

공백과 괄호가있는 것은 CG에 어려움을 겪는다는 것을 알고 있지만 여기에 있습니다.

    class SecretLanguage {

    public static void main(String[] args) {
    for (String S : args) {
        for (char s : S.toCharArray()) {
        System.out.print((char) (s + ((s < 'y') ? 2 : -24)));
        }
        System.out.print(" ");
    }
    }
}

난독 화 코드에 대한 별도의 경연 대회가 있지만, 나도 말도 안되게 만들 수 있습니다.

class S{public static void main(String[]args){for(String str:args){for(char i:(str).toCharArray())System.out.print((char)(i+((i<'y')?2:-24)));System.out.print(" ");}}

2

자바 스크립트

var str = '';
var textInput = 'myString';
for (var i = 0; i < textInput.length; i++) {
    str += textInput.charAt(i).replace(/([a-zA-Z])[^a-zA-Z]*$/, function (a) {
        var c = a.charCodeAt(0);
        switch (c) {
            case 89:
                return 'A'; //Letter Y!
            case 90:
                return 'B'; //Letter Z!
            case 121:
                return 'a'; //Letter y!
            case 122: //Letter z!
                return 'b';
            default:
                return String.fromCharCode(c + 2); //If not y, Y, z, or Z, then just two more from the usual char code
        }
    })
}
console.log(str);

모든 의견으로 내 햄스터는 이것을 이해할 수 있습니다.


2

나는 그것을 ROT2 할 것이라고 생각한다!

자바 스크립트

function r(a,b){return++b?String.fromCharCode((a<"["?91:123)>(a=a.charCodeAt()+2)?a:a-26):a.replace(/[A-z]/g,r)}

console.log(r('Qccipcr'));

나는 처음에는 그런 것에 대해 생각했지만 결코 생각하지 못했습니다 [A-z]!
칫솔

2

하스켈

다음은 렌즈 기반 구현입니다. 나는 Iso일반 텍스트와 비밀 언어로 변환 된 텍스트 사이의 동형을 나타내는 데 사용 하고 있습니다. --from옵션 을 제공하지 않으면 입력이 비밀 언어로 변환됩니다. 경우 --from옵션이 제공되며, 그 반대의 변환이 수행된다.

module Main where
import Control.Lens
import System.Environment (getArgs)
import Data.Char          (ord, chr, isUpper, isSpace)
import Data.Word          (Word8)

ord8 :: Char -> Word8
ord8 = fromIntegral . ord

chr8 :: Word8 -> Char
chr8 = chr . fromIntegral

ordIso :: Iso' Char Word8
ordIso = iso ord8 chr8

firstLetterOrd :: Word8 -> Word8
firstLetterOrd n
  | n ^. from ordIso . to isUpper = ord8 'A'
  | otherwise                     = ord8 'a'

secretChar :: Iso' Char Char
secretChar =
  iso toSecret
      fromSecret
  where
    toSecret, fromSecret :: Char -> Char
    toSecret   = secretConversion   2
    fromSecret = secretConversion (-2)

secretConversion :: Int -> Char -> Char
secretConversion n c
  | isSpace c = c
  | otherwise = c & over ordIso (secretShift n)

secretShift :: Int -> Word8 -> Word8
secretShift shiftAmount =
  preserveLetters $ (`mod` 26) . (+ shiftAmount)

preserveLetters :: (Int -> Int) -> Word8 -> Word8
preserveLetters fn n =
  firstLetter + overWord8 fn (n - firstLetter)
  where
    firstLetter = firstLetterOrd n

overWord8 :: (Int -> Int) -> Word8 -> Word8
overWord8 fn = fromIntegral . fn . fromIntegral

help :: IO ()
help =
  putStr
  $ unlines
      ["SecretLang [--from]"
      ,"If the --from option is provided, the program"
      ,"converts from the secret language. Otherwise,"
      ,"it converts to the secret language."
      ]

convertContents :: (String -> String) -> IO ()
convertContents fn = do
  input <- getContents
  putStrLn . ("Output: " ++) $ fn input

main :: IO ()
main = do
  args <- getArgs

  case args of
    ("--from":_) ->
      convertContents (^. mapping (from secretChar))

    ("--help":_) -> help
    ("-h"    :_) -> help

    _            ->
      convertContents (^. mapping secretChar)

예 :

$ ./SecretLang
Today is a great day
Output: Vqfca ku c itgcv fca

$ ./SecretLang --from
Vqfca ku c itgcv fca
Output: Today is a great day

1

    #include<stdio.h>

    int main()
    { char p[256];
    int i;
    fgets ( p, 256, stdin );
    for(i=0; i<256 ; i++)
    {
   if ( p[i] == '\n' )
    {
    p[i] = '\0';
    break;
    }
    else
    {

    if((p[i] >= 'a' && p[i] <= 'x') || (p[i] >= 'A' && p[i] <= 'X') )
    {
        p[i] +=2;
    }

    else
    {
    switch(p[i])
     {
        case 'y':    p[i] = 'a';
                     break;

       case 'Y':    p[i] = 'A';
                     break;

       case 'z':    p[i] = 'b';
                     break;
       case 'Z':    p[i] = 'B';
                     break;
       case ' ':    p[i] = ' ';
                     break;


     }
    }
}}

printf("%s", p);

    return 0;
 }

문자에 대한 계수 산술을 사용하여 많은 코드를 저장할 수 있습니다 ...
blabla999

@ blabla999 이것은 인기 대회이며 코드 골프는 아닙니다
Mhmd

1
죄송합니다. 기분을 상하게하려는 것이 아닙니다. 나는 그것을 간과했다.
blabla999

1

EcmaScript 6 :

alert(prompt(_='').split(_).map(x=>String.fromCharCode(x.charCodeAt()+(x>' '?x>'x'|x>'X'&x<'['?-24:2:0))).join(_))

EcmaScript, 나의 적군
Cilan

1

자바

32입니다 space우리는있는 그대로를 인쇄 할 수 있도록
88입니다 X무엇보다 적게 892 개 문자까지 이동
90이다 Z미만 아무것도 있도록 9124 자 아래로 이동합니다 (아무것도 미만 89아직만을 취급 89하고 90효과적으로)
에 이르기까지, 소문자 문자에 대해 같은 과정을 반복 97a122z.

void secret(String s) {
    for (char c : s.toCharArray()) {
        System.out.print((char)(c == 32 ? c : c < 89 ? c + 2 : c < 91 ? c - 24 : c < 121 ? c + 2 : c - 24));
    }
}

1

파워 쉘

$chars = [int]('a')[0]..[int]('z')[0] | %{ [char]$_, [char]::ToUpper([char]$_) }

$y = $args[0].ToCharArray() | %{
    $idx = $chars.indexOf($_);
    if ($idx -ge 0) {
        $chars[($idx + 4) % 52]
    } else  {
        $_
    } 
}

-join [char[]]$y

산출:

PS C:\Temp> .\z.ps1 "Today is a great day"
Vqfca ku c itgcv fca
PS C:\Temp>

1

PHP

이 솔루션은 다소 지루합니다.

echo strtr('Today is a great day','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','CDEFGHIJKLMNOPQRSTUVWXYZABcdefghijklmnopqrstuvwxyzab');

1

파이썬 3

나는 그 질문을 잘 이해하지 못했다고 생각하지만 어쨌든 :

alphabet = "abcdefghijklmnopqrstuvwxyz"
rot = alphabet[2:] + alphabet[:2]
rot = rot + rot.upper()
alphabet = alphabet + alphabet.upper()

def encode_letter(letter):
    return rot[alphabet.index(letter)]

def encode_word(word):
    return "".join(encode_letter(letter) for letter in word)

def encode_string(string):
    return " ".join(encode_word(word) for word in string.split())

print("Output: " + encode_string(input("Input: ")))

1

파이썬 2.x

기능이 풍부한 Python 솔루션을 시도했습니다.

풍모:

  • 딕트 사용
  • 목록을 순환 방식으로 처리하여 shift=2변경 가능
  • 당신은 또한 당신이 알고있을 때 해독하기 위해 그것을 사용할 수 있습니다 shift(마이너스를 사용하십시오), 그것은 또한 당신이 당신의 출력을 테스트 할 수있게 해줍니다.
  • "시프 팅 스코프"를 추가하는 기능-사이클하는 스코프
  • 옵션 strict은 정의되지 않은 문자이거나, 정의되지 않은 입력 문자를 반환합니다.
  • 비밀 언어는 흔적을 남기지 않습니다.)

간다 :

# Shifting scopes
lower_case = map(chr, range(97, 123))
upper_case = map(chr, range(65, 91))
space = [" "] # space will always be transformed to space

def secret(instring, shift, scopes, strict=False):
    def buildTranslationDict(scores):
        translation_dict = {}
        for scope in scopes: 
            for index in range(len(scope)): 
                translation_dict[scope[index]] = scope[(index+shift) % len(scope)]
        return translation_dict 
    translation_dict = buildTranslationDict(scopes)
    # Use the translation dictionary to transform input
    output = ""        
    for char in instring:
        if strict:
           output += translation_dict[char]   # will crash if unexpected char
        else:
            try:    
               output += translation_dict[char]
            except: 
               output += char
    return output    

증명:

secret(instring="Today is a great day", shift=2, scopes=[lower_case, upper_case, space])
'Vqfca ku c itgcv fca'

당신은 해독 할 수 있습니까 'Wrpruurz lv qrw edg hlwkhu!':)?


궁금한 점이 있으시면이 "엄격한"기능을 "포인트에 추가 하지 않음 "으로 추가 하시겠습니까?
PascalVKooten

6 줄의 코드를 저장합니다 ...
PascalVKooten

1
당신은 자신에게 말하고 있습니까, 아니면 뭔가 빠졌습니까? 삭제 된 댓글처럼?
Timtech

1
예, 삭제되었습니다. 댓글도 삭제하지 마십시오 ...
PascalVKooten

0

확장 된 BrainFuck

이것은 인기 콘테스트이기 때문에 EBF만큼 쉽게 따라갈 수 있도록 작성했습니다. 그것은 많은 주석을 달았으며 프로그램 흐름을보다 문자 그대로 만들기 위해 의도적으로 매크로를 사용했습니다.

아마도 가장 어려운 것은 EBF가 특별한 수단을 가지고 있지 않기 때문에 주요 스위치 일 것입니다. 그래서 실제로 변수와 균형 괄호를 제외하고는 BrainFuck에서 어떻게 할 것인지보다 간단하지 않습니다.

;;;; rot2.ebf : Perform rot2 on ascii text
;;;; Usage: bf ebf.bf < rot2.ebf > rot2.bf
;;;;        echo "Today is a great day" | bf rot2.bf
;;;;        # => Vqfca ku c itgcv fca
;;;;
;;;; BF interpreter/Compiler requirement: 
;;;; Wrapping cells at any size (allmost all of them do)
;;;;


;;; Memory map  
:tmp    ; a temporary cell used for the read routine
:input  ; a copy of the input for output purposes
:switch ; a copy of the input for the switch statements
:flag   ; flag to indicate the predicate has been processed or not

;;; Macros
;; Ultracompatible read
;; supports EOF 0, -1 and no change
{read_tmp 
  $input+ 
  $tmp(-),
  [+[-$input-]] ; blanks for all EOFs
  $switch [
    @input &clear
    $switch
  ]
}

;; for the switch we need
;; to do destructive testing
;; and we need to preserve the
;; original as well. 
{copy_input 
  $tmp(-$input+$switch+)
}

;; clears the cell
{clear (-)}

;; prints current cell
{print .}

;;; Main proram
;;; flow starts here
&read_tmp
while $tmp not eof
(
  &copy_input
  $flag+
  $switch 10-(22-(
    ;; not linefeed/space
    $switch 57-(-(31-(-(
       ;; default: not wrapping
       &clear
       $flag-
       $input 2+))))
    $flag (-
       ;; wrapping
       $input 24-)))
  $flag &clear
  $input &print &clear
  &read_tmp
)
;;; End

0

자바 스크립트

var STR = "Today is a great day";
//so i can replace chars at a index in the string
String.prototype.replaceAt=function(i, char) {
    var a = this.split("");
    a[i] = char;
    return a.join("");
}

function secretIt( str ){
    for( var i = 0; i < str.length; i++ ) {
        var c = str.charCodeAt( i );
        /**
        * check for spaces first
        * check if get outside of the letter range for both lower and upper
        * if we dont go then were good
        * if so go back 26 chars
        */
        str = str.replaceAt( i, String.fromCharCode( ( c == 32 ) ? c : ( ( c = c + 2 ) > 91 && c < 97 || c < 123 ) ? c : c - 26 ) ) ;
    }
    return str;
}

console.log( secretIt( "Qsncp qcapcr ambc" ), ' ' , secretIt( STR ));



0

C #, 163

예, 이것은 코드 골프가 아닙니다. 어쨌든 나는 가장 짧게 갔다 (또는 적어도 그것에 찔렀다)

using System.Linq;class P{static void Main(string[]a){System.Console.WriteLine(string.Concat(a[0].Select(c=>(char)(c==32?c:c<89?c+2:c<91?c-24:c<121?c+2:c-24))));}}

형식화 :

using System.Linq;
class P
{
    static void Main(string[] a)
    {
        System.Console.WriteLine(string.Concat(a[0].Select(c => (char)(c == 32 ? c : c < 89 ? c + 2 : c < 91 ? c - 24 : c < 121 ? c + 2 : c - 24))));
    }
}

예, 나는 엿봄을했다 ufis의 대답을 .


0

C # 5KB

(381 자)

391

using System;
namespace WinHelper {
    class P {
        static void Main(string[] args) {
            char[] f =  "abcdefghijklmnopqrstuvwxyz ".ToCharArray();
            char[] g =  "cdefghijklmnopqrstuvwxyzab ".ToCharArray();

            foreach (char c in Console.ReadLine().ToCharArray().ToLower()) 
                Console.Write(g[Array.FindIndex(f, a => a == c)]);
        }
    }
}

컴파일 된 크기 (5KB)는 중요하지 않습니다. 대한 코드 골프 숫자의 문자 보통 (소스 코드의) 수,하지만이 특정 문제가 있기 때문에 인기 투표 가 아닌 코드 골프 문자 / 크기는 전혀 문제가되지 않습니다. popularity contest챌린지 아래 배지 위에 마우스를 올려 놓으십시오 . " 인기 대회는 가장 인기있는 답변이 정답 인 대회usually the most creative answer "입니다.
RobIII

또한 Today is a great day대문자를 지원하지 않으므로 챌린지의 예제 입력에서 충돌이 발생합니다 .
RobIII

0

배쉬, 8 자

... bsdgames 패키지가 설치되어 있다면! 표준 입력에서 읽습니다.

caesar 2

echo Today is a great day|caesar 2

산출: Vqfca ku c itgcv fca


0

#include <stdio.h>
char c[100];
int main()
{
gets(c);
char *p=c,x;
while(*p)
{
    x=*p;
    if(x>='a'&&x<='z')
    {
        *p=((*p-'a'+2)%(26)+'a');
    }
    if(x>='A'&&x<='Z')
    {
        *p=((*p-'A'+2)%(26)+'A');
    }

    p++;
}
puts(c);
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.