随笔1 - 网上面试题

1. [.Netframework4,要求高效]假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配,比如:abcdaadabc和adabcabcda,由于出现的字符个数都是相同,只是顺序不同,所以这两个字符串是匹配的。写出一个高效的方法。

        /// <summary>
        /// 判断字符串是否匹配(字符相同,顺序不同)
        /// </summary>
        /// <param name="first">要比较的字符串</param>
        /// <param name="second">要比较的字符串</param>
        /// <returns></returns>
        public static bool Compare(string first, string second)
        {
            if (first == null && second == null) { return true; } //两个均为Null
            if (first == null || second == null) { return false; } //一个为Null,一个不为Null
            if (first == "" && second == "") { return true; } //两个均为空字符串
            if (first == "" || second == "") { return false; } //一个为空字符串,一个不为空字符串
            if (first.Length != second.Length) { return false; } //字符串长度不同

            first = string.Join(string.Empty, first.OrderBy(c => c)); //字符串排序重新组合
            second = string.Join(string.Empty, second.OrderBy(c => c)); //字符串排序重新组合

            return (first == second);
        }


2. [.Netframework4,要求高效]有一个Int数组(数组长度、顺序等不确定),要求计算出数组中两个值相加等于指定值的所有组合,并且组合不能重复,比如int[]{1,2,3,4,5,6,7,8,9},输出相加等于10的组合。

        /// <summary>
        /// 找出Int数组相加等于指定值的组合
        /// </summary>
        /// <param name="para">整数数组</param>
        /// <param name="SumData">相加后的整数</param>
        /// <returns>结果集合[返回组合集合,数组长度为2,相加即为指定值]</returns>
        public static List<int[]> FindIntSum(Int32[] para, Int32 SumData)
        {
            List<int[]> ListResult = new List<int[]>(); //定义结果集合
            if (para.Length == 0 || SumData == 0) { return null; } //参数判断

            List<Int32> list = para.Distinct().OrderBy(A => A).ToList(); //去除重复项并转化为Int集合

            for (int i = 0; i < list.Count; i++)
            {
                if (list[i] > SumData) { break; }

                int temp = SumData - list[i];
                if (list[i] >= temp) { break; }

                if (list.Contains(temp))
                {
                    ListResult.Add(new int[] { list[i], temp });
                }
            }

            if (ListResult.Count == 0)
            {
                return null;
            }

            return ListResult;
        }


3. [Web,要求高效]限制文本框输入,要求:(1)只能输入数字,非数字不允许输入;(2)不允许粘贴;(3)不允许拖动文本到文本框;(4)不允许切换输入法。

<!-- 不能输入非输入数字/不能粘贴/不能切换输入法/不能拖动内容进来 -->
			<input type="text" οnpaste="return false;" οndragenter="return false;" Style="ime-mode: Disabled;" οnkeypress="return event.keyCode>=48&&event.keyCode<=57;" />


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP 是一个优秀的PHP框架,可以帮助我们快速开发高质量的 Web 应用程序。因此,使用 ThinkPHP 来开发 OA 系统是非常方便和实用的。下面我们来讨论一下如何使用 ThinkPHP 来开发一个人力资源管理系统。 1. 创建数据库 首先,我们需要创建一个数据库来存储我们的数据。在该数据库中,我们需要创建一些表来存储员工信息、部门信息、职位信息、薪资信息等等。我们可以使用 MySQL 数据库来创建这些表。 2. 创建 ThinkPHP 项目 在创建完数据库之后,我们需要创建一个 ThinkPHP 项目来实现我们的 OA 系统。我们可以使用 ThinkPHP 官方提供的命令行工具来创建项目,具体命令如下: ``` composer create-project topthink/think oa ``` 执行完上述命令后,会在当前目录下创建一个名为 oa 的 ThinkPHP 项目。 3. 配置数据库 在项目创建好之后,我们需要配置数据库连接信息。在项目的 `.env` 文件中,我们可以配置数据库的相关信息,如下所示: ``` # 数据库类型 DB_CONNECTION=mysql # 数据库地址 DB_HOST=127.0.0.1 # 数据库端口 DB_PORT=3306 # 数据库名 DB_DATABASE=oa # 数据库用户名 DB_USERNAME=root # 数据库密码 DB_PASSWORD= ``` 我们需要根据自己的实际情况来修改这些配置项。 4. 创建控制器和模型 在 ThinkPHP 中,我们可以通过创建控制器和模型来实现 OA 系统的功能。我们可以使用命令行工具来快速创建控制器和模型,具体命令如下: ``` # 创建控制器 php think make:controller Index # 创建模型 php think make:model User ``` 执行完上述命令后,会在项目中生成一个名为 Index 的控制器和一个名为 User 的模型。 5. 实现功能 在创建好控制器和模型之后,我们就可以开始实现 OA 系统的功能了。比如,我们可以实现员工信息的添加、修改、删除、查询等操作,部门信息的添加、修改、删除、查询等操作,职位信息的添加、修改、删除、查询等操作,薪资信息的添加、修改、删除、查询等操作等等。我们可以在控制器中编写处理逻辑,在模型中编写数据库操作。最后,我们可以使用视图来展示数据。 6. 测试系统 在实现完功能之后,我们需要对系统进行测试。我们可以使用浏览器或者 Postman 等工具来测试系统的功能是否正常。如果有问题,我们可以根据错误提示来进行调试和修复。 总之,使用 ThinkPHP 来开发 OA 系统是非常方便和实用的。我们可以根据自己的实际情况来定制系统的功能和界面,从而更好地管理公司的人力资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值