1.验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"

输出: true

示例 2:

输入: "race a car"

输出: false

java

class Solution {

public boolean isPalindrome(String s) {

s = s.replaceAll("[^0-9a-zA-Z]","");

s = s.toLowerCase();

if(s.equals("")) return true;

int i=0;

int j=s.length()-1;

while(i

if(s.charAt(i)!=s.charAt(j)){

return false;

}

i++;

j--;

}

return true;

}

}

php

class Solution {

/**

* @param String $s

* @return Boolean

*/

function isPalindrome($s) {

$s = preg_replace( '/[^a-z0-9]/i', '', $s);

$s = strtolower($s);

if(empty($s)) return true;

for ($i = 0, $j = strlen($s) - 1; $i < $j; $i++, $j--) {

if($s[$i]!=$s[$j]) return false;

}

return true;

}

}

2.只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

算法应该具有线性时间复杂度。

示例 1:

输入: [2,2,1]

输出: 1

示例 2:

输入: [4,1,2,1,2]

输出: 4

异或:相同为0,不同为1. 异或同一个数两次,原数不变。

java

class Solution {

public int singleNumber(int[] nums) {

int rs = 0;

for(int i=0;i

rs^=nums[i];

}

return rs;

}

}

php

class Solution {

/**

* @param Integer[] $nums

* @return Integer

*/

function singleNumber($nums) {

$rs = 0;

for($i=0;$i

$rs ^= $nums[$i];

}

return $rs;

}

}

 

相关链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。