suppressPackageStartupMessages(library("tidyverse"))
package 㤼㸱tidyverse㤼㸲 was built under R version 3.6.3

1. Replace all forward slashes in a string with backslashes.

str_replace_all("past/present/future", "/", "\\\\")
[1] "past\\present\\future"

2. Implement a simple version of str_to_lower() using replace_all().

replacements <- c(
  "A" = "a", "B" = "b", "C" = "c", "D" = "d", "E" = "e",
  "F" = "f", "G" = "g", "H" = "h", "I" = "i", "J" = "j",
  "K" = "k", "L" = "l", "M" = "m", "N" = "n", "O" = "o",
  "P" = "p", "Q" = "q", "R" = "r", "S" = "s", "T" = "t",
  "U" = "u", "V" = "v", "W" = "w", "X" = "x", "Y" = "y",
  "Z" = "z"
)
lower_words <- str_replace_all(words, pattern = replacements)
head(lower_words)
[1] "a"        "able"     "about"    "absolute" "accept"   "account" 

3. Switch the first and last letters in words. Which of those strings are still words?

First, make a vector of all the words with first and last letters swapped,

swapped <- str_replace_all(words, "^([A-Za-z])(.*)([a-z])$", "\\3\\2\\1")

Next, find what of “swapped” is also in the original list using the function intersect(),

intersect(swapped, words)
 [1] "a"          "america"    "area"       "dad"        "dead"       "lead"       "read"      
 [8] "depend"     "god"        "educate"    "else"       "encourage"  "engine"     "europe"    
[15] "evidence"   "example"    "excuse"     "exercise"   "expense"    "experience" "eye"       
[22] "dog"        "health"     "high"       "knock"      "deal"       "level"      "local"     
[29] "nation"     "on"         "non"        "no"         "rather"     "dear"       "refer"     
[36] "remember"   "serious"    "stairs"     "test"       "tonight"    "transport"  "treat"     
[43] "trust"      "window"     "yesterday" 
LS0tDQp0aXRsZTogIlJlcGxhY2luZyBtYXRjaGVzIg0Kb3V0cHV0OiANCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCi0tLQ0KDQpgYGB7cn0NCnN1cHByZXNzUGFja2FnZVN0YXJ0dXBNZXNzYWdlcyhsaWJyYXJ5KCJ0aWR5dmVyc2UiKSkNCmBgYA0KDQojIyMgMS4gUmVwbGFjZSBhbGwgZm9yd2FyZCBzbGFzaGVzIGluIGEgc3RyaW5nIHdpdGggYmFja3NsYXNoZXMuDQoNCmBgYHtyfQ0Kc3RyX3JlcGxhY2VfYWxsKCJwYXN0L3ByZXNlbnQvZnV0dXJlIiwgIi8iLCAiXFxcXCIpDQpgYGANCg0KIyMjIDIuIEltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIGBzdHJfdG9fbG93ZXIoKWAgdXNpbmcgYHJlcGxhY2VfYWxsKClgLg0KDQpgYGB7cn0NCnJlcGxhY2VtZW50cyA8LSBjKA0KICAiQSIgPSAiYSIsICJCIiA9ICJiIiwgIkMiID0gImMiLCAiRCIgPSAiZCIsICJFIiA9ICJlIiwNCiAgIkYiID0gImYiLCAiRyIgPSAiZyIsICJIIiA9ICJoIiwgIkkiID0gImkiLCAiSiIgPSAiaiIsDQogICJLIiA9ICJrIiwgIkwiID0gImwiLCAiTSIgPSAibSIsICJOIiA9ICJuIiwgIk8iID0gIm8iLA0KICAiUCIgPSAicCIsICJRIiA9ICJxIiwgIlIiID0gInIiLCAiUyIgPSAicyIsICJUIiA9ICJ0IiwNCiAgIlUiID0gInUiLCAiViIgPSAidiIsICJXIiA9ICJ3IiwgIlgiID0gIngiLCAiWSIgPSAieSIsDQogICJaIiA9ICJ6Ig0KKQ0KbG93ZXJfd29yZHMgPC0gc3RyX3JlcGxhY2VfYWxsKHdvcmRzLCBwYXR0ZXJuID0gcmVwbGFjZW1lbnRzKQ0KaGVhZChsb3dlcl93b3JkcykNCmBgYA0KDQojIyMgMy4gU3dpdGNoIHRoZSBmaXJzdCBhbmQgbGFzdCBsZXR0ZXJzIGluIHdvcmRzLiBXaGljaCBvZiB0aG9zZSBzdHJpbmdzIGFyZSBzdGlsbCB3b3Jkcz8NCg0KRmlyc3QsIG1ha2UgYSB2ZWN0b3Igb2YgYWxsIHRoZSB3b3JkcyB3aXRoIGZpcnN0IGFuZCBsYXN0IGxldHRlcnMgc3dhcHBlZCwNCg0KYGBge3J9DQpzd2FwcGVkIDwtIHN0cl9yZXBsYWNlX2FsbCh3b3JkcywgIl4oW0EtWmEtel0pKC4qKShbYS16XSkkIiwgIlxcM1xcMlxcMSIpDQpgYGANCg0KTmV4dCwgZmluZCB3aGF0IG9mIOKAnHN3YXBwZWTigJ0gaXMgYWxzbyBpbiB0aGUgb3JpZ2luYWwgbGlzdCB1c2luZyB0aGUgZnVuY3Rpb24gYGludGVyc2VjdCgpYCwNCg0KYGBge3J9DQppbnRlcnNlY3Qoc3dhcHBlZCwgd29yZHMpDQpgYGANCg==