Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- namespace Amazon.RunLength
- {
- class Program
- {
- static void Main(string[] args)
- {
- var content = @"AAAABBCCDAA";
- var result = Encode(content);
- Console.WriteLine(@"{0}:{1}", content, result);
- var encrypted = @"4A2B2C1D2A10F";
- var decrypted = Decode(encrypted);
- Console.WriteLine(@"{0}:{1}", encrypted, decrypted);
- }
- static string Encode(string content)
- {
- const string format = @"{0}{1}";
- if (string.IsNullOrWhiteSpace(content))
- return string.Empty;
- var sb = new StringBuilder();
- var current = 0;
- var item = content[current];
- var i = current+1;
- for(; i < content.Length; i++) {
- if(content[i] == item)
- continue;
- sb.AppendFormat(format, i - current, item);
- item = content[i];
- current = i;
- }
- sb.AppendFormat(format, i - current, item);
- return sb.ToString();
- }
- static string Decode(string content) {
- var sb = new StringBuilder();
- for(var i = 0; i < content.Length;){
- var current = 0;
- while(Char.IsDigit(content[i + current]))
- current += 1;
- var times = int.Parse(content.Substring(i, current));
- sb.Append(new String(content[i+current], times));
- i += current + 1;
- }
- return sb.ToString();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement