C# WinForms 字符串压缩:字母重复压缩算法

本示例使用 C# WinForms 编写了一个简单的字符串压缩程序,它只对字母进行重复次数压缩。

假设:

  • 只输入字母,不考虑数字和其他字符。

示例:

  • 输入:'fsssssssssfffffsfsss'
  • 输出:'f10s5f4s3'

代码:

using System;
using System.Windows.Forms;
using System.Collections.Generic;

namespace Compression
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string input = textBox1.Text;
            string output = Compress(input);
            textBox2.Text = output;
        }

        private string Compress(string input)
        {
            Dictionary<char, int> dict = new Dictionary<char, int>();
            string result = "";
            foreach (char c in input)
            {
                if (dict.ContainsKey(c))
                {
                    dict[c]++;
                }
                else
                {
                    dict.Add(c, 1);
                }
            }
            foreach (KeyValuePair<char, int> pair in dict)
            {
                result += pair.Key.ToString() + pair.Value.ToString();
            }
            return result;
        }
    }
}

解释:

  1. 代码使用 Dictionary 存储每个字母出现的次数。
  2. 遍历输入字符串,如果字母已存在字典中,则增加其计数;否则,将其添加到字典中,并将其计数设置为 1。
  3. 遍历字典,将每个字母及其计数拼接成字符串,并返回最终结果。

注意:

  • 此代码只对字母进行了压缩,不包括数字和其他字符。
  • 您可以根据实际需求修改代码,例如添加对数字和特殊字符的支持。

更多学习:

C# WinForms 字符串压缩:字母重复压缩算法

原文地址: https://www.cveoy.top/t/topic/lq5I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录