PHP中比较两个字符串找出第一个不同字符位置例子
<?php
for ($offset = 0; $offset < $length; ++$offset) {
if ($str1[$offset] !== $str2[$offset]) {
return $offset;
}
}
而问题下面给出的最佳答案是用异或操作符( ^ ),以前从来没用过这个操作符,也不知道能用到什么地方,今天算是学到。
因为一般情况下,当你对两个字符串进行异或操作的时候,相同的字符的异或结果是null(“\0”),所以我们只要找出第一个非null(“\0”)字符就可以了。
代码如下:
<?php
$position = strspn($string1 ^ $string2, "\0");
很明显这是一个更优雅高效的方法。 另外,回答的人还附加了一个多字节字符的解决办法。
代码如下:
<?php
function getCharacterOffsetOfDifference($str1, $str2, $encoding = 'UTF-8') {
return mb_strlen($str1, $encoding)
- mb_strlen(
mb_strcut(
$str1,
strspn($str1 ^ $str2, "\0"),
mb_strlen($str1, '8bit'),
$encoding
),
$encoding
);
}
相关推荐
-
php中执行系统命令的方法
本文实例讲述了php中执行系统命令的方法.分享给大家供大家参考.具体分析如下: 在php中执行系统命令,如LS <?php // exec.php $cmd = "dir"; // Windows // $cmd = "ls"; // Linux, Unix & Mac exec(escapeshellcmd($cmd), $output, $status); if ($status) echo "Exec command failed&qu
-
PHP判断一个字符串是否是回文字符串的方法
本文实例讲述了PHP判断一个字符串是否是回文字符串的方法.分享给大家供大家参考.具体实现方法如下: <?php function ishuiwen($str){ $len=strlen($str); $l=1; $k=intval($len/2)+1; for($j=0;$j<$k;$j++){ if (substr($str,$j,1)!=substr($str,$len-$j-1,1)) { $l=0; break; } } if ($l==1) { return 1; } else {
-
图解找出PHP配置文件php.ini的路径的方法
近来,有不博友问php.ini存在哪个目录下?或者修改php.ini以后为何没有生效?基于以上两个问题,我觉得有必要教一下刚接触PHP的博友们如何找到PHP调用php.ini的路径目录. 一般安装PHP环境无非有两种平台,Linux环境下与WIN平台下.而WIN平台居多,因为现在套装安装包非常方便,如appserv.wamp一件安装包等等.而Linux下也有LNMP一键安装包,非常方便.由于这些安装做了简化,所以自然的许多博友就不太清楚环境安装好了以后php.ini放在哪个目录下,或者在某个目录
-
php使用正则表达式进行字符串搜索的方法
本文实例讲述了php使用正则表达式进行字符串搜索的方法.分享给大家供大家参考.具体实现方法如下: <?php $string_to_search = "jb51.net"; $regex = "/tor/"; $num_matches = preg_match($regex, $string_to_search); if ($num_matches > 0) { echo "Found a match!"; } else { echo
-
PHP安全上传图片的方法
本文实例讲述了PHP安全上传图片的方法.分享给大家供大家参考.具体分析如下: 这段代码用于上传图片,可以根据图片类型检测图片是否安全,不是简单的检测扩展名 <?php // upload.php echo <<<_END <html><head><title>PHP Form Upload</title></head><body> <form method='post' action='upload2.p
-
PHP输出两个数字中间有多少个回文数的方法
本文实例讲述了PHP输出两个数字中间有多少个回文数的方法.分享给大家供大家参考.具体分析如下: "回文数"是一种数字.如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数. <?php for($i=10;$i<100;$i++){ $len=strlen($i); $l=1; $k=intval($len)/2+1; for($j=0;$j<$k;$j++){ if (substr($i,$j,1)!=substr($
-
php找出指定范围内回文数且平方根也是回文数的方法
本文实例讲述了php找出指定范围内回文数且平方根也是回文数的方法.分享给大家供大家参考.具体如下: 一.要求: 给出两个数值X和Y,统计在这个区间里的回文数,并且要求它们的平方根也是回文数.其中 1<= x <= y < 10 14 二.解决方法: <?php error_reporting(E_ALL); ini_set("display_errors", 1); //避免超时 set_time_limit(0); $t1=microtime(); funct
-
PHP中比较两个字符串找出第一个不同字符位置例子
一般的做法就会这样: 复制代码 代码如下: <?phpfor ($offset = 0; $offset < $length; ++$offset) { if ($str1[$offset] !== $str2[$offset]) { return $offset; }} 而问题下面给出的最佳答案是用异或操作符( ^ ),以前从来没用过这个操作符,也不知道能用到什么地方,今天算是学到. 因为一般情况下,当你对两个字符串进行异或操作的时候,相同的字符的异或结果是null
-
JS实现为排序好的字符串找出重复行的方法
本文实例讲述了JS实现为排序好的字符串找出重复行的方法.分享给大家供大家参考,具体如下: 实现这样一个需求,在一个Editplus文档中,有很多行10位的数字,这些数字已经排好序了. 比如: 1234567890 1234567891 1234567892 1234534124 1234614124 4321412414 5636373573 有什么办法能方便的找出两行至少前7位相同的数字吗? 比如,上面的数字中,能够找出 1234567890 1234567891 1234567892 <!D
-
找出nginx配置文件的所在位置的方法详解
对于一台陌生的服务器或安装太久忘了位置,怎么才能简单快速的找到配置文件的位置呢?要找出配置文件的位置,需要先找出nginx可执行文件的路径 , 这里有几种方法: 1.如果程序在运行中 ps -ef | grep nginx # ps -ef | grep nginx root 29514... 对于一台陌生的服务器或安装太久忘了位置,怎么才能简单快速的找到配置文件的位置呢? 要找出配置文件的位置,需要先找出nginx可执行文件的路径 , 这里有几种方法: 1.如果程序在运行中 ps -ef |
-
在C语言中比较两个字符串是否相等的方法
C语言strcmp()函数:比较字符串(区分大小写) 头文件:#include <string.h> strcmp() 用来比较字符串(区分大小写),其原型为: int strcmp(const char *s1, const char *s2); [参数]s1, s2 为需要比较的两个字符串. 字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值.strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回.例
-
JavaScript中判断两个字符串是否相等的方法
先将用户的输入值全部转换为大写(或小写),然后再行比较: var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. } JavaScript有两种相等运算符.一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句: var strA = "
-
Shell脚本对比两个文本文件找出不同行的2个方法分享
亲自实验过的方法如下: 第一种:comm命令法 命令如下:comm -3 file1 file2 有一个问题就是,如果两个文件排序不一样的话,会出问题 第二种:grep命令法 命令如下:grep -vwf file1 file2 统计file1中没有,file2中有的行 具体使用环境以后再补充,今天先记录到这里.
-
SQLServer中求两个字符串的交集
使用javascript的数组来计算,代码如下: 复制代码 代码如下: use tempdb go if (object_id ('fn_getArray' ) is not null ) drop function dbo . fn_getArray go create function fn_getArray (@ inStr1 varchar (8000 ), @ inStr2 varchar (8000 )) returns varchar (8000 ) as begin declar
-
python中合并两个文本文件并按照姓名首字母排序的例子
前段时间前在网上看到一段面试题,要求如下: employee文件中记录了工号和姓名 复制代码 代码如下: cat employee.txt: 100 Jason Smith 200 John Doe 300 Sanjay Gupta 400 Ashok Sharma bonus文件中记录工号和工资 复制代码 代码如下: cat bonus.txt: 100 $5,000 200 $500 300 $3,000 400 $1,250 要求把两个文件合并并输出如下, 处理结果: 复制代码 代码如下:
-
详解PHP如何在两个大文件中找出相同记录
目录 1.引言 2.思路 3.实操 4.生成测试文件 5.分割文件 6.查找重复记录 7.完整代码 1.引言 给定a,b两个文件, 分别有x,y行数据, 其中(x, y均大于10亿), 机器内存限制100M,该如何找出其中相同的记录? 2.思路 处理该问题的困难主要是无法将这海量数据一次性读进内存中. 一次性读不进内存中,那么是否可以考虑多次呢?如果可以,那么多次读入要怎么计算相同的值呢? 我们可以用分治思想, 大而化小.相同字符串的值hash过后是相等的, 那么我们可以考虑使用hash取模,
-
C++找出字符串中出现最多的字符和次数,时间复杂度小于O(n^2)
已知字符串"aabbbcddddeeffffghijklmnopqrst"编程找出出现最多的字符和次数,要求时间复杂度小于O(n^2) /******************************************************** Copyright (C), 2016-2017, FileName: main9 Author: woniu201 Description:求字符串中出现次数最多的字符和次数 ******************************
随机推荐
- Windows 2003组策略和安全模板的应用
- Windows XP系统注册表十则设置技巧
- 硬盘“逻辑锁”的解决办法
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)
- 给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
- Javascript中 toFixed四舍六入方法
- JS实现鼠标滑过折叠与展开菜单效果代码
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- python将unicode转为str的方法
- 如何在PHP程序中防止盗链
- PHP实现变色验证码实例
- js实现无缝循环滚动
- python之yield表达式学习
- Ajax在请求过程中显示进度的简单实现
- Javascript中的var_dump函数实现代码
- JavaScript各类型的关系图解
- 详解Linux批量更改文件后缀名
- 详解C语言中的常量指针和指针常量
- 合并网页中的多个script引用实现思路及代码
- CakePHP框架Model关联对象用法分析