Sha256: 00e8df36e536af6d15574e4b7c42b5f40a55e232484efb9bee47e06fad2fd6a0

Contents?: true

Size: 708 Bytes

Versions: 219

Compression:

Stored size: 708 Bytes

Contents

rotate <- function(text, key) {
  
  # Split string into character vector
  text_vector <- unlist(strsplit(text, ""))
  
  # Record which characters are upper case
  upper_case <- toupper(text_vector) == text_vector
  
  # Rotate letter characters
  rotation_index <- (match(tolower(text_vector), letters) + key - 1) %% 26 + 1
  rotated_vector <- letters[rotation_index]
  
  # Restore non-letter characters in rotated character vector
  rotated_vector[is.na(rotated_vector)] <- text_vector[is.na(rotated_vector)]
  
  # Restore upper case characters
  rotated_vector[upper_case] <- toupper(rotated_vector[upper_case])
  
  # Collapse character vector into string
  paste(rotated_vector, collapse = "")
  
}

Version data entries

219 entries across 219 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.179 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.178 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.177 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.176 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.175 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.174 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.173 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.172 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.171 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.170 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.169 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.167 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.166 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.165 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.164 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.163 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.162 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.161 tracks/r/exercises/rotational-cipher/example.R
trackler-2.2.1.160 tracks/r/exercises/rotational-cipher/example.R