Initial commit
This commit is contained in:
77
16-strings-revisited/04-masker-challenge/main.go
Normal file
77
16-strings-revisited/04-masker-challenge/main.go
Normal file
@@ -0,0 +1,77 @@
|
||||
// For more tutorials: https://blog.learngoprogramming.com
|
||||
//
|
||||
// Copyright © 2018 Inanc Gumus
|
||||
// Learn Go Programming Course
|
||||
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
//
|
||||
|
||||
/*
|
||||
------------------------------------------------------------
|
||||
RULES
|
||||
------------------------------------------------------------
|
||||
|
||||
* You shouldn't use a standard library function.
|
||||
|
||||
* You should only solve the challenge by manipulating the bytes directly.
|
||||
|
||||
* Manipulate the bytes of a string using indexing, slicing, appending etc.
|
||||
|
||||
* Be efficient: Do not use string concat (+ operator).
|
||||
|
||||
* Instead, create a new byte slice as a buffer from the given string argument.
|
||||
|
||||
* Then, manipulate it during your program.
|
||||
|
||||
* And, for once, print that buffer.
|
||||
|
||||
------------------------------------------------------------
|
||||
STEPS
|
||||
------------------------------------------------------------
|
||||
|
||||
* Mask only links starting with http://
|
||||
|
||||
* Don't check for uppercase/lowercase letters
|
||||
* The goal is to learn manipulating bytes in strings
|
||||
* It's not about creating a perfect masker
|
||||
|
||||
* For example: A spammer can prevent the masker like this (for now this is OK):
|
||||
|
||||
"Here's my spammy page: hTTp://youth-elixir.com"
|
||||
|
||||
* But, you should catch this:
|
||||
|
||||
"Here's my spammy page: http://hehefouls.netHAHAHA see you."
|
||||
"Here's my spammy page: http://******************* see you."
|
||||
*/
|
||||
package main
|
||||
|
||||
func main() {
|
||||
// ---------------------------------------------------------------
|
||||
// #1
|
||||
// ---------------------------------------------------------------
|
||||
// Check whether there's a command line argument or not
|
||||
// If not, quit from the program with a message
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// #2
|
||||
// ---------------------------------------------------------------
|
||||
// Create a byte buffer as big as the argument
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// #3
|
||||
// ---------------------------------------------------------------
|
||||
// 1- Loop and detect the http:// patterns
|
||||
// 2- Copy the input character by character to the buffer
|
||||
// 3- If you detect http:// pattern, copy the http:// first,
|
||||
// then copy the *s instead of the original link until
|
||||
// you see a whitespace character.
|
||||
//
|
||||
// Here: http://www.mylink.com Click!
|
||||
// -> Here: http://************** Click!
|
||||
//
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// #4
|
||||
// ---------------------------------------------------------------
|
||||
// Print the buffer as a string
|
||||
}
|
Reference in New Issue
Block a user