C# WinForms 字符串压缩:字母重复压缩算法
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;
}
}
}
解释:
- 代码使用
Dictionary存储每个字母出现的次数。 - 遍历输入字符串,如果字母已存在字典中,则增加其计数;否则,将其添加到字典中,并将其计数设置为 1。
- 遍历字典,将每个字母及其计数拼接成字符串,并返回最终结果。
注意:
- 此代码只对字母进行了压缩,不包括数字和其他字符。
- 您可以根据实际需求修改代码,例如添加对数字和特殊字符的支持。
更多学习:
原文地址: https://www.cveoy.top/t/topic/lq5I 著作权归作者所有。请勿转载和采集!