分享一个OJ平台——浙江工商大学的OJ平台

article/2025/10/8 8:44:38

1.引言

    最近是有总喜欢讨论算法题,因为他们在准备考研复试,为什么我不准备呢?这是一个悲伤的故事,刚好自己也有面试遇到只能使用C和C++的代码题,他们说这OJ平台相对简单一些,那些刷不来LeetCode可以试试这个,作为入门算法的跳板。体验体验写不出来或者找不到bug的那种感觉,避免入职第一天觉得顶不住压力,说实话,前端更偏向于业务,往往就是搜索——看看配置方式——总结或者深究原理(陈然很多时候我们都没有这最后一步,前端也就成了专业码砖的了)。一旦遇到某些bug解决不了或者某些功能没有实现的思路往往一下子上头。作为菜鸡,试了试浙江工商的这个还是挺适合我的,举出例子让前端编程弱的友友们了解一下吧。

2.网站

    浙江工商大学OJ平台,链接:http://acm.zjgsu.edu.cn/,我们学校也有,大一也做了一些,但是没能坚持下去,算法需要足够的毅力才能有一些证书上的成果。当然也不必因为觉得算法不好而自卑,各有所长很正常,计算机越学越广。

3.题例一

    题目简介:
在这里插入图片描述
    思路上还是很好想出来的,关键是容错处理,首部和尾部的空格(可能是连续的无效空格),最后的解决思路是:
(1)首先排除首部的无效空格,然后再来计数;立一个flag,如果头部一直是空格,那么flag一直不变,出现字符反转flag,也就是有单词。
(2)中间计数:如果前面一个是空格,后一个不是空格,那么计数一次;
(3)后置处理:如果最开始设置的flag没有反转过,那就是都是空格,也就是没有单词;如果有单词,那么需要最后在计数的基础上+1,因为判断是基于单词空格判断的。
简单贴一下代码吧:

#include<bits/stdc++.h>//算法的万能头
using namespace std;
int main() {string str;int num = 0;getline(cin, str);int len = str.length();int flag = 0;for (int i = 0; i < len; i++) {//去掉首部的空格if (!flag && str[i] == ' ') {continue;} else {flag = 1;if (i > 0 && (str[i - 1] == ' ' && str[i] != ' ')) {num++;}}}if (!flag)cout << 0 << endl;else {cout << num + 1 << endl;}return 0;
}

4.题例二

     其实主要是想说这个,有点东西的:
在这里插入图片描述
     如果没有踩到坑或者没有仔细复盘可能不知道里面的坑,大概也就是为什么这题的通过率这么低。注意题意的理解,先找最小值再交换,再找最大值再交换,注意第二次是对交换之后的数据进行操作。很多人估计和我一样:这还不简单,直接遍历一次,找出最大最小值的下标交换,完事了,但是一直有部分样例没有通过。
     其实原因是:同时遍历再交换和两次有先后顺序的处理是不一样的,最后我通过复盘找到了一组数据:4 3 1(题目保证输入数据不重复),如果是同时遍历再交换,那么执行流程将是如下的情况:
(1)找到最小最大值下标(题意要求先换小的),也就是下标对应于20
(2)交换最小值位置,由于最小的数不在第一个位置,交换变成了1 4 3
(3)交换最大值位置,由于最大的数据不在最后的位置,交换变成了3 4 1(是的,变回去了)。
然而如果按照题意的两次,第一次交换也就是第一次交换最小值,变成了:1 3 4,第二次交换最大值,也就是不变了。有点东西,算法还是不能想当然,不然怎么错的都得想半天。


http://chatgpt.dhexx.cn/article/WoOGUwGk.shtml

相关文章

算法OJ题(1)

1.删除有序数组中的重复项 原题链接&#xff1a;https://leetcode.cn/problems/remove-duplicates-from-sorted-array/ 思路&#xff1a;使用双指针算法可以使时间复杂度达到O(1). 具体过程&#xff1a;&#xff08;以画图解释&#xff09; 代码实现&#xff1a; int remove…

你想知道刷题的秘密吗?一篇博客让你明白什么是OJ题,如何刷OJ题,并深入浅出的带你刷遍顺序表的OJ题(小白必看)

目录 0.前言 1.什么是OJ 1.1 OJ简述 1.2 OJ的分类&#xff08;尤其接口型OJ&#xff0c;带你剖析得明明白白&#xff09; 1.3 接口型OJ的输入型参数 2. 剑指 Offer 56 - I. 数组中数字出现的次数 3. 88. 合并两个有序数组 4. 27.移除元素 5. 26. 删除有序数组中的重复…

Online Judge系统(简称OJ)

什么是OJ Online Judge系统&#xff08;简称OJ&#xff09;是一个在线的判题系统。用户可以在线提交程序源代码&#xff0c;系统对源代码进行编译和执行&#xff0c;并通过预先设计的测试数据来检验程序源代码的正确性。 一个用户提交的程序在Online Judge系统下执行时将受到比…

OJ的介绍以及使用方法

OJ系统简介 Online Judge系统&#xff08;简称OJ&#xff09;是一个在线的判题系统。用户可以在线提交程序多种程序&#xff08;如C、C&#xff09; 源代码&#xff0c;系统对源代码进行编译和执行&#xff0c;并通过预先设计的测试数据来检验程序源代码的正确性。 一个用户提…

C++-OJ

题目源自某高校C的OJ 本文字数过多&#xff0c;所有代码&#xff0c;都在这里 将做过的C OJ题目整理合并了一下&#xff0c;总共有一百多道题目&#xff0c;手动合并自然是不可能的 这个时候我们就可以使用shell脚本来取代这种机械化的重复劳动了&#xff0c;由于写成博客需要…

杭电OJ刷题指南(ACM)

除了杭电OJ&#xff0c;还有北大OJ&#xff0c;华科OJ等。 1.首先&#xff0c;打开百度&#xff0c;输入“杭电OJ”进行搜索 2.然后进入杭电OJ官网&#xff0c;进行注册 3.输入注册信息 4.接下来进入详细注册界面&#xff0c;将信息填写完整后点击Submit 5.接下来即可登录…

OJ系统

什么是OJ Online Judge系统&#xff08;简称OJ&#xff09;是一个在线的判题系统。用户可以在线提交程序源代码&#xff0c;系统对源代码进行编译和执行&#xff0c;并通过预先设计的测试数据来检验程序源代码的正确性。 一个用户提交的程序在Online Judge系统下执行时将受到比…

最适合编程训练的三大OJ(从易到难)

按照学习的需求来说依次介绍&#xff0c;方便初学者使用&#xff1a; 1.Dotcpp网www.dotcpp.com 优点&#xff1a;全中文OJ&#xff0c;题目分类&#xff0c;有题解 这可能是初学者最好用的OJ甚至没有之一了 全中文的友好操作&#xff0c;充足的语法基础题、二级C语言题、…

各大OJ刷题平台汇总

前言 想成为一名高级工程师&#xff0c;算法还是要有的&#xff0c;至少在入门编程和进入公司之前都是必备的。刷题也可以很好的锻炼动手能力和逻辑思维&#xff0c;今天就给大家介绍一些知名的在线刷题平台,都是干货哦&#xff01; 力扣(leetcode) 江湖人尽皆知的站点&#xf…

OJ的基本原理

OJ的简介&#xff1a;OJ(Online Judge)&#xff0c;就是一个线上判断的接口&#xff0c;通常用于一些比赛中的程序判断&#xff0c;也就是将符合程序的结果放在OJ上&#xff0c;来进行程序验证&#xff0c;后来的大量的互联网公司也开始使用OJ来判断题目的正确性。 OJ的分类 …

【OJ】OJ的介绍和常用OJ推荐

目录 OJ的介绍编程刷题OJ集合计蒜客(主刷编程题 &#xff09;牛客网(编程题和选择题都有)力扣(主要编程大题)领扣(主刷大题)Comet OJACMOREXidian Programming Contest Online Judge晴问浙江中医药OJZOJHDUOJ华东师范OJ洛谷codeforces 常见的测评结果 OJ的介绍 Online Judge 简…

OJ基础题库(1)

收录内容 P1005 最大公约数 p1008 质数还是合数 p1019 修改字符串 p1021 日历问题 #include<iostream> using namespace std;int max_yueshu(int x,int y){int temp;while(y!0){tempx%y;xy;ytemp;}return x; }int main(){int n,i;cin>>n; //输入对数int x,y,res;…

OJ算法分析题库(2)

P1476 加工生产调度 【实验】贪心算法之流水作业调度问题&#xff08;分析&#xff09; P1748 abcd0 P1750 求逆序对 P1746 求解查找最后一个数小于等于指定数的元素问题 P1477 部分背包问题&#xff08;分析&#xff09; 算法分析&#xff1a; 算法大致的思路就是通过四…

小程序生成网址链接,网址链接跳转小程序(附详细流程)

1.点击右上角工具下拉选择生成URL Scheme 2.填写好信息点击生成 3. 可以得出一个 weixin://dl/business/?tbAXXXXX 这样的链接&#xff0c;点击就可以调整到小程序拉&#xff0c;但是这种只能在微信打开哦。

小程序接入流量主、banner广告、激励广告

小程序接入广告 1.什么是微信小程序广告2.流量主开通流程3.微信小程序流量主开通以及添加广告步骤(1) 接入banner广告(2) 接入激励广告 1.什么是微信小程序广告 2.流量主开通流程 申请成为流量主后才能接入广告首先进入小程序后台&#xff0c;点击流量主&#xff0c;点击开通…

微信小程序实现登录注册页面

一、在小程序中引入iconfont 1.在官网搜索需要的图标 2.将图标添加至项目 3.打开我的项目 4.选择font class&#xff0c;点击下方的链接&#xff0c;打开生成的源码 5.在styles文件夹下新建iconfont.wxss&#xff0c;拷贝生成的源码到该文件中 二、编写登录注册页面 …

小程序获取用户的openid(详解)

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识&#xff0c;快速建立小程序内的用户体系然而因为小程序中的openid不可以直接使用需要用code&#xff08;登录凭证&#xff09;去换取openid 获取openid的思路 获取openid首先需要调用小程序的login方法…

微信小程序使用腾讯地图完整流程

前言&#xff1a;开发小程序需要得到定位和位置的省市区文字信息&#xff0c;看了所有的文章都没有一个完整和像样的&#xff0c;全是copy来&#xff0c;copy去的文章 - _ -&#xff01;&#xff0c;一怒之下&#xff0c;开始了自己的踩坑之路 第一步&#xff1a;申请腾讯地图…

小程序生命周期

小程序的生命周期说白了就是指程序从创建、到开始、暂停、唤起、停止、卸载的过程。 我们大概从三个角度看一下小程序的生命周期。 &#xff08;1&#xff09;&#xff1a;应用生命周期 &#xff08;2&#xff09;&#xff1a;页面生命周期 &#xff08;3&#xff09;&…

如何注册微信小程序

1、浏览器搜索&#xff1a; 微信公众平台 2、点击小程序 3、滑至底部&#xff0c;前往注册 4、按照注册流程依次填写信息 5、注册好后&#xff0c;来到微信公众平台&#xff0c;用微信扫码登录小程序 6、完成小程序信息的填写 7、找到开发者工具 8、前往下载开发工具 选择稳定…