c#中如何在数组之间传递数据?

how to transfer between arrays in c#?

我有一个自动机理论的项目,我想将算法转换成编程语言(无论用什么编程语言来解决这个问题)

嗯,我有这些订单

我们输入一个字符串,然后将其转换为字符,以便我们进行比较,

例如我们输入了这个

01001

为了说清楚,我将添加更多输入以了解我的意思,

01000001

{有效输入}

101101

{输入错误}

0

{输入错误}

我们会检查第一个数字是否为0如果是,我们将这个字符串复制到另一个数组1,然后将其转换为with 1如果相同我们将其复制到数组2,那么这里我们需要输入使用 for 或 foreach 的循环,我们想检查下一个值是否为 0(没有最后一个字符)所以我使用 a.length-1 来确保它不会使用最后一个,当我们看到新值时是 1,我们移动到最后一个数组并且必须是 1。 我们将使用 Console.WriteLine(""); 发送消息程序遵循顺序

我做了类似的东西(在 C# 中):

string s= Console.ReadLine();
var a = s.ToCharArray();

Console.WriteLine("Original String: {0}",s);

//for (int k = 4; k < a.Length; k++) {
if (a[0] == '0' && a[1] == '1' && a[a.Length-1] == '1') {

    for (int r = 2; r < a.Length-1; r++) {
        if (a[r] == '0')
        {
            Console.WriteLine("The Language is Right.");

        }              
    }               
}

如何创建新数组并复制并使用它来检查

实现有限自动机的直接方法是遍历输入并将状态存储在变量中:

string s= Console.ReadLine();
int state = 0;
foreach (char c in s.ToCharArray())
{
    if (state == 0 && c == '0')
        state = 1;
    else if (state == 0 && c == '1')
        state = -1;
    else if (state == 1 && c == '1')
        state = 2;
    else if (state == 1 && c == '0')
        state = -1;
    else if (state == 2 && c == '1')
        state = 3;
    else if (state == 3)
        state = -1;
}
bool accepted = state == 3;
Console.WriteLine(accepted);