18.10.10 数算作业-字符串
题目内容: 老师给小学生门布置了一些作业,让它们按照一个模版写一些字符串交上来, 同学们把作业交上来了,问题来了,这么多的作业老师批改不过来,现在请你帮老师 写一个程序,帮助老师确定各个字符串是否合格。 首先老师有一个匹配模版,比如是“aa[123]bb”这一个字符串,同学们交的各种 作业字符串如aa1bb、aa2bb、aa3bb都算是正确匹配看,而aacbb就是错误的字符串。 (即待查字符串对应于模版方括号内的部分,应该为方括号内字符串的一个子字符)。 我们需要做的就是按照模版,找出正确的字
面向对象(OOP)三
一、面向对象基础原则 1)单一职责原则(类要写得小而精,低耦合) 内部类 单列模式 对于单一职责原则,其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职 责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损 伤其内聚性和耦合度。通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引
luogu1357花园(矩阵运算)(状压DP)
不得不说本蒻做这个题目的时候内心是很蒙蔽的qwq 推了规律找错了结果还没有暴力的分数高qwq...... 开数组\(f[i][j]\)来记录前i个花圃,(这里运用到状压的思想)其中最近的m个的状态(二进制,1表示C,0表示P),然后因为这个状态是可以递推下一个状态的(比如说1~m到2~m+1),然后我们发现每一次的状态转移都可以用同一个矩阵实现,那么该题目就可以用矩阵快速幂来加速计算。因为题目中是一个环状,那么转换n次一定还是原先的状态。那么题目就转换成了一个合法状态(这个需要预先判断出来)转
【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1、获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using System.Collections.Generic;
using System.Linq;
namespace WebApi.Controllers
{
/// <summary>
/// 扩展类
/// </summary>
public stati
VR一体机如何退出FFBM(QFIL)
前文介绍了通过fastboot命令擦除misc分区,从而退出FFBM的方法。这个方法比较简便,但有不灵的时候,fastboot erase misc命令执行失败,如下图所示。 erasing 'misc'... FAILED (remote: unknown command) finished. total time: 0.001s fastboot擦除misc分区的方法不灵,就只能用QFIL神器了,QFIL是高通提供的刷机工具。首先让VR一体机进入紧急下载模式(EDL),方法有两种。如adb
webpack4 系列教程(十一):字体文件处理
教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步《webpack4 系列教程(十一):字体文件处理》原文地址。或者来我的小站看更多内容:godbmw.com 0. 课程介绍和资料 >>>本节课源码 >>>所有课程源码 本节课的代码目录如下: 本节课的package.json内容如下: {
"devDependencies": {
"css-loader": "^1.0.0",
"extract-text-webpack-plugin": "^4.0.0-b
输出1到最大的N位数
声明:本片文章为阅读何海涛网易日志后,自己用java实现后的学习总结。
何海涛网易日志:http://zhedahht.blog.163.com/blog/static/2541117420094279426862/
题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。
思路:首先直接用int或者long进行循环显然不切实际,如果
两链表的第一个公共结点
声明:本片文章为阅读何海涛网易日志后,自己用java实现后的学习总结。
何海涛日志:http://zhedahht.blog.163.com/blog/static/254111742008053169567/
题目:两个单向链表,找出它们的第一个公共结点。
思路:两个单向链表,如果存在公共节点,则两个链表会呈现 Y 形状,所以两个链表最后一个节点肯定是公共节点。
可以找到两个链表的最后节
leetcode11:Container With Most Water
题目:给出一个非负整数数组,数组中的数代表一个栏杆,寻找两个栏杆和x轴形成一个水池,找出能装水最多的两个栏杆。
假如给出的例子是height = {1,2,3,4,5,6,7,8,9},则height[4]=5,height[8]=9,则形成的水池是(9-5)*5=20
思路:先用两个指针,一个low一个hight,一个指向数组开头,一个指向数组结尾,则我们要找的两个栏杆肯定在这两
Leetcode39:Combination Sum
题目:给定一个整型数组candidates,和一个目标值target,使用数组中的数组成target,找出所有的组合。例如: candidates = {2,3,6,7}; target =7 ; 则返回的结果为:[[7],[2,2,3]] 。 题目说明,candidates中的数字全为正数,target也全为正数。 并且返回的结果中candidates中的数可以是重复的,而且不限次数的重复。但每
leetcode90:Subsets II
题目:求数组的各种组合,数组中可能存在重复的数字,但是求出来的所有组合中不能有重复的组合。
代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 题目:求一个数组nums的所有组合,nums中可能有重复的数字。但是求得的组合不能有相同的组合。
* 例如:nums = [1,
leetcode229. Majority Element II
/**
* 题目:如果数组数组中有一个数超过三分之一,则称为主数,现在寻找数组中的所有主数。
* @author hongbin.gao
* 思路:原来有一道题目,主数的定义为超过二分之一的数,我们的思路是,将数组中的数两两一组(两个数不等),则最后余下的那个数可能是主数,如果题目说一定存在主数,那就不用检查了,如果不一定存在,则还需要检查一下。
* 现在我们采用相同的思路,将三个
leetcode337. House Robber III
题目:对于一个二叉树,不能同时取某个分支上两端的两个节点,求能取得的最大的值。(这是题目大意)思路:对于一个二叉树,如果根据条件判断该二叉树根节点可以取,则传入参数true,如果某个二叉树的根节点不可以取,则传入false,当参数为true时,到底真正取与不去分两种情况,类似于0-1背包问题,然后返回那个结果比较大的情况。当参数为false,则根节点一定是不能取了,则返回(root.left,tr
Leetcode113. Path Sum II
题目:找出从根节点到叶节点的路径中各节点值之和为sum的所有路径,并返回。
思路:用数组nodeList保存从根节点到现在节点的 路径中的节点。再用flagList来保存每个节点的遍历情况,0表示对应的节点只遍历了左节点,1表示已经遍历了左节点和右节点,再一次过来就可以删除了。思路很简单,下面是代码。
代码:
/**
* 5
* /
SGI STL(一)——初识STL
为了建立数据结构和算法的一套标准,并且降低其间的耦合(coupling)关系,以提高各自的独立性、弹性、交互操作性(相互合作性,interoperability),C++社群里诞生了STL(Standard Template Library)。
SGI STL(二)——C++ 语言特性
在发前一篇博客之前,我认为 STL 的源码剖析,只需要了解 C++ 的的特性与语法规则,便可以比较顺利的解析 STL 的源码。但是,现实却并非如我所预想的那般简单。是的,每个智慧怎么会那般轻易掌握,更何况是集合好多大佬的精华所编写的 STL 呢。所以呢,我决定从 C++ 最基本的标准库开始。
今日推荐
周排行