Rails/Parentheses_Balance

一、栈

特点:同进同出,栈里顺序不能改变
代码实现:定义一维数组为栈a[n],下标为top的单元a[top]为栈顶;入栈:top++,对a[top]赋值;出栈:top–

二、scanf()函数

格式:scanf(“%x”,&a);
特点:对被定义格式变量进行输入,如定义输入整型变量,空格或回车就表示输入结束,输入单个变量后面不能加空格;
若定义输入字符变量,那么空格或回车会被当做字符变量输入,对于字符变量输入用fgets()函数更为适合;
scanf函数输入结束后会有’\n’换行字符在末尾,在后面使用fgets()函数的时候就要注意(Parentheses_Balance括号匹配一题中就有所体现)

三、fgets()函数

格式:fgets(char * s,int size,FILE * stream);(数组/字符串名;读入字符串长度;输入设备或变量(通常键盘stdin) )
特点:读取规定长度的字符串,可以包含空格,最后一位为结束符’\0’
若字符串长度大于size-1,就读到size-1位字符,在最后一位补充’\0’结束;
若字符串长度小于size-1,就读取所有字符,在最后一位补充’\0’结束;
‘\n’字符在’\0’字符之前,所以在使用fgets()函数时设置长度要考虑可能隐藏的’\n’字符,设置size在不超内存的情况下长于要求所给的长度,避免读取出现错误(Parentheses_Balance括号匹配一题中就有所体现,若读取size129输入为128个括号时就会出现bug)

四、strlen()函数:

格式:unsigned int strlen (char *s);
特点:读取字符长度,不包含结束符’\0’,函数返回值为字符长度

五、debug心得:

1、使用while()循环时要注意循环最后要初始化相关变量,要与while()循环前的设定保持一致,当多组数据验证时后者的数据结果输出出错时就可以考虑是否是这里出了bug
2、边界情况需要单独考虑,可能出现特殊错误,如读取错误。
3、使用输入函数输入变量时可能隐藏空格,换行,结束字符,对后面变量使用出现错误,debug时可以用printf()函数输出验证输入是否正确(通过输出ASCII码可以找到隐藏字符输入)。
4、低级错误:变量名用错,格式用错,对函数格式理解不透彻

Rails

入栈出栈顺序

题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=354&page=show_problem&problem=45#

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a[1000],b[1000];
    int i,j,k;
    int top=-1;
    while(n!=0)
    {
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            if(a[i]==0)
                break;
        }
        while(a[0]!=0)
        {
            k=n;
            j=n-1;
            while(j>=0)
            {
                if(top!=-1)
                {
                    if(b[top]==k)
                    {
                        top--;
                        k--;
                    }
                    else if(a[j]!=k)
                    {
                        top++;
                        b[top]=a[j];
                        j--;
                    }
                    else
                    {
                        k--;
                        j--;
                    }
                }
                else if(a[j]!=k)
                {
                    top++;
                    b[top]=a[j];
                    j--;
                }
                else
                {
                    k--;
                    j--;
                }
            }
            while(top!=-1)
            {
                if(b[top]==k)
                {
                    top--;
                    k--;
                }
                else
                {
                    printf("No\n");
                    break;
                }
            }
            if(k==0)
                printf("Yes\n");
            for(i=0;i<n;i++)
            {
                scanf("%d",&a[i]);
                if(a[i]==0)
                break;
            }
        top=-1;
        }
            printf("\n");
            scanf("%d",&n);
    }
    return 0;
}

Parentheses_Balance

括号匹配

题目https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=354&page=show_problem&problem=614#

#include <stdio.h>
#include <string.h>
int main()
{
    //freopen("in.txt","r",stdin);
    int n,m;
    scanf("%d",&n);
    char a[130],b[130],c[10];
    int i,j,k=0;
    int top=-1;
    fgets(c,10,stdin);
    for(i=0;i<n;i++)
    {
        fgets(a,130,stdin);
        m=strlen(a);
        //printf("%d",m);
        for(j=0;j<m-1;j++)
        {
            if(a[j]=='('||a[j]=='[')
            {
                top++;
                b[top]=a[j];
                k++;
            }
            else if( (b[top]=='('  &&  a[j]==')')  ||  (b[top]=='['  &&  a[j]==']') )
            {
                top--;
                k++;
            }
        }
        if(k==m-1&&top==-1)
            printf("Yes\n");
        else
            printf("No\n");
        k=0;
        top=-1;
    }
    return 0;
}
标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新概述本文采用Python技术栈的设计方法和系统创新。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
E:/Bitnami/redmine-5.0.3-0/ruby/bin/ruby.exe -x E:\Bitnami\redmine-5.0.3-0\apps\redmine\htdocs\bin\bundle exec E:\Bitnami\redmine-5.0.3-0\ruby\bin\ruby.exe E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/bin/rails server -b 127.0.0.1 -p 3000 -e development Beginning in Rails 4, Rails ships with a `rails` binstub at ./bin/rails that should be used instead of the Bundler-generated `rails` binstub. If you are seeing this message, your binstub at ./bin/rails was generated by Bundler instead of Rails. You might need to regenerate your `rails` binstub locally and add it to source control: rails app:update:bin # Bear in mind this generates other binstubs # too that you may or may not want (like yarn) If you already have Rails binstubs in source control, you might be inadvertently overwriting them during deployment by using bundle install with the --binstubs option. If your application was created prior to Rails 4, here's how to upgrade: bundle config --delete bin # Turn off Bundler's stub generator rails app:update:bin # Use the new Rails executables git add bin # Add bin/ to source control You may need to remove bin/ from your .gitignore as well. When you install a gem whose executable you want to use in your app, generate it and add it to source control: bundle binstubs some-gem-name git add bin/new-executable => Booting Thin => Rails 6.1.7 application starting in development http://127.0.0.1:3000 => Run `bin/rails server --help` for more startup options Please add the following to your Gemfile to avoid polling for changes: gem 'wdm', '>= 0.1.0' if Gem.win_platform? E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.7/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `named_scope' for Issue (call 'Issue.connection' to establish a connection):Class (NoMethodError) from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/lib/redmine_simple_kanban/patches/issue_patch.rb:13:in `block in included' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/lib/redmine_simple_kanban/patches/issue_patch.rb:8:in `class_eval' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/lib/redmine_simple_kanban/patches/issue_patch.rb:8:in `included' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/init.rb:61:in `include' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/init.rb:61:in `block (3 levels) in <top (required)>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/init.rb:61:in `class_eval' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/init.rb:61:in `block (2 levels) in <top (required)>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/init.rb:50:in `each' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/plugins/redmine_simple_kanban/init.rb:50:in `block in <top (required)>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/lazy_load_hooks.rb:68:in `block in execute_hook' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/lazy_load_hooks.rb:51:in `each' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/application/finisher.rb:140:in `block in <module:Finisher>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/initializable.rb:32:in `instance_exec' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/initializable.rb:32:in `run' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/initializable.rb:61:in `block in run_initializers' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:228:in `block in tsort_each' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:431:in `each_strongly_connected_component_from' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:349:in `block in each_strongly_connected_component' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:347:in `each' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:347:in `call' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:347:in `each_strongly_connected_component' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:226:in `tsort_each' from E:/Bitnami/redmine-5.0.3-0/ruby/lib/ruby/2.6.0/tsort.rb:205:in `tsort_each' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/initializable.rb:60:in `run_initializers' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/application.rb:391:in `initialize!' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/config/environment.rb:16:in `<top (required)>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.6.1/lib/zeitwerk/kernel.rb:35:in `require' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.6.1/lib/zeitwerk/kernel.rb:35:in `require' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/dependencies.rb:332:in `block in require' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/dependencies.rb:299:in `load_dependency' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.7/lib/active_support/dependencies.rb:332:in `require' from config.ru:3:in `block in <main>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rack-2.2.4/lib/rack/builder.rb:116:in `eval' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rack-2.2.4/lib/rack/builder.rb:116:in `new_from_string' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rack-2.2.4/lib/rack/builder.rb:105:in `load_file' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rack-2.2.4/lib/rack/builder.rb:66:in `parse_file' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rack-2.2.4/lib/rack/server.rb:349:in `build_app_and_options_from_config' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rack-2.2.4/lib/rack/server.rb:249:in `app' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/rack-2.2.4/lib/rack/server.rb:422:in `wrapped_app' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/commands/server/server_command.rb:77:in `log_to_stdout' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/commands/server/server_command.rb:37:in `start' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/commands/server/server_command.rb:144:in `block in perform' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/commands/server/server_command.rb:135:in `tap' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/commands/server/server_command.rb:135:in `perform' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/command/base.rb:69:in `perform' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/command.rb:48:in `invoke' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/commands.rb:18:in `<top (required)>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/app_loader.rb:59:in `require' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/app_loader.rb:59:in `block in exec_app' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/app_loader.rb:48:in `loop' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/app_loader.rb:48:in `exec_app' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/lib/rails/cli.rb:7:in `<top (required)>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/exe/rails:10:in `require' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.6.0/gems/railties-6.1.7/exe/rails:10:in `<top (required)>' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/bin/rails:29:in `load' from E:/Bitnami/redmine-5.0.3-0/apps/redmine/htdocs/bin/rails:29:in `<main>' Exiting Process finished with exit code 1
09-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值