mirror of
https://github.com/donnemartin/interactive-coding-challenges
synced 2026-01-03 16:08:02 +00:00
Replaced tabs with spaces
This commit is contained in:
@@ -108,59 +108,59 @@
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def compress_string(string):\n",
|
||||
"\tif string is None or len(string) == 0:\n",
|
||||
"\t\treturn string\n",
|
||||
" if string is None or len(string) == 0:\n",
|
||||
" return string\n",
|
||||
"\n",
|
||||
"\t# Calculate the size of the compressed string\n",
|
||||
"\tsize = 0\n",
|
||||
"\tlast_char = string[0]\n",
|
||||
"\tfor char in string:\n",
|
||||
"\t\tif char != last_char:\n",
|
||||
"\t\t\tsize += 2\n",
|
||||
"\t\t\tlast_char = char\n",
|
||||
"\tsize += 2\n",
|
||||
" # Calculate the size of the compressed string\n",
|
||||
" size = 0\n",
|
||||
" last_char = string[0]\n",
|
||||
" for char in string:\n",
|
||||
" if char != last_char:\n",
|
||||
" size += 2\n",
|
||||
" last_char = char\n",
|
||||
" size += 2\n",
|
||||
"\n",
|
||||
"\t# If the compressed string size is greater than\n",
|
||||
"\t# or equal to string size, return original string\n",
|
||||
"\tif size >= len(string):\n",
|
||||
"\t\treturn string\n",
|
||||
" # If the compressed string size is greater than\n",
|
||||
" # or equal to string size, return original string\n",
|
||||
" if size >= len(string):\n",
|
||||
" return string\n",
|
||||
"\n",
|
||||
"\t# Create compressed_string\n",
|
||||
"\t# New objective:\n",
|
||||
"\t\t# Single characters are to be left as is\n",
|
||||
"\t\t# Double characters are to be left as are\n",
|
||||
"\tcompressed_string = list()\n",
|
||||
"\tcount = 0\n",
|
||||
"\tlast_char = string[0]\n",
|
||||
"\tfor char in string:\n",
|
||||
"\t\tif char == last_char:\n",
|
||||
"\t\t\tcount += 1\n",
|
||||
"\t\telse:\n",
|
||||
"\t\t\t# Do the old compression tricks only if count exceeds two\n",
|
||||
"\t\t\tif count > 2:\n",
|
||||
"\t\t\t\tcompressed_string.append(last_char)\n",
|
||||
"\t\t\t\tcompressed_string.append(str(count))\n",
|
||||
"\t\t\t\tcount = 1\n",
|
||||
"\t\t\t\tlast_char = char\n",
|
||||
"\t\t\t# If count is either 1 or 2 (or 0?)\n",
|
||||
"\t\t\t# FIXME: CAN COUNT BE 0?\n",
|
||||
"\t\t\telse:\n",
|
||||
"\t\t\t\t# If count is 1, leave the char as is\n",
|
||||
"\t\t\t\tif count == 1:\n",
|
||||
"\t\t\t\t\tcompressed_string.append(last_char)\n",
|
||||
"\t\t\t\t\tcount = 1\n",
|
||||
"\t\t\t\t\tlast_char = char\n",
|
||||
"\t\t\t\t# If count is 2, append the character twice\n",
|
||||
"\t\t\t\telse:\n",
|
||||
"\t\t\t\t\tcompressed_string.append(last_char)\n",
|
||||
"\t\t\t\t\tcompressed_string.append(last_char)\n",
|
||||
"\t\t\t\t\tcount = 1\n",
|
||||
"\t\t\t\t\tlast_char = char\n",
|
||||
"\tcompressed_string.append(last_char)\n",
|
||||
"\tcompressed_string.append(str(count))\n",
|
||||
" # Create compressed_string\n",
|
||||
" # New objective:\n",
|
||||
" # Single characters are to be left as is\n",
|
||||
" # Double characters are to be left as are\n",
|
||||
" compressed_string = list()\n",
|
||||
" count = 0\n",
|
||||
" last_char = string[0]\n",
|
||||
" for char in string:\n",
|
||||
" if char == last_char:\n",
|
||||
" count += 1\n",
|
||||
" else:\n",
|
||||
" # Do the old compression tricks only if count exceeds two\n",
|
||||
" if count > 2:\n",
|
||||
" compressed_string.append(last_char)\n",
|
||||
" compressed_string.append(str(count))\n",
|
||||
" count = 1\n",
|
||||
" last_char = char\n",
|
||||
" # If count is either 1 or 2 (or 0?)\n",
|
||||
" # FIXME: CAN COUNT BE 0?\n",
|
||||
" else:\n",
|
||||
" # If count is 1, leave the char as is\n",
|
||||
" if count == 1:\n",
|
||||
" compressed_string.append(last_char)\n",
|
||||
" count = 1\n",
|
||||
" last_char = char\n",
|
||||
" # If count is 2, append the character twice\n",
|
||||
" else:\n",
|
||||
" compressed_string.append(last_char)\n",
|
||||
" compressed_string.append(last_char)\n",
|
||||
" count = 1\n",
|
||||
" last_char = char\n",
|
||||
" compressed_string.append(last_char)\n",
|
||||
" compressed_string.append(str(count))\n",
|
||||
"\n",
|
||||
"\t# Convert the characters in the list to a string\n",
|
||||
"\treturn \"\".join(compressed_string)"
|
||||
" # Convert the characters in the list to a string\n",
|
||||
" return \"\".join(compressed_string)"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -255,7 +255,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.4.3"
|
||||
"version": "3.5.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
Reference in New Issue
Block a user