题目
题目链接:
https://www.nowcoder.com/practice/3e8b48c812864b0eabba0b8b25867738
思路
参考答案C++
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param str string字符串* @return int整型*/int Substrings(string str) {//枚举每一个中心向两边扩展int n = str.size();int ans = 0;for (int i = 0; i < 2 * n - 1; i++) {int left = i / 2;int right = i / 2 + i % 2;while (left >= 0 && right < n && str[left] == str[right]) {left--;right++;ans++;}}return ans;}
};
参考答案Java
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param str string字符串* @return int整型*/public int Substrings (String str) {//枚举每一个中心扩展int n = str.length();int ans = 0;for (int i = 0; i < 2 * n - 1; i++) {int left = i / 2;int right = i / 2 + i % 2;while (left >= 0 && right < n && str.charAt(left) == str.charAt(right)) {ans++;left--;right++;}}return ans;}
}
参考答案Go
package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param str string字符串* @return int整型*/
func Substrings(str string) int {//枚举每一个中心向两边扩展n := len(str)ans := 0for i := 0; i < 2*n-1; i++ {left := i / 2right := i/2 + i%2for left >= 0 && right < n && str[left] == str[right] {left--right++ans++}}return ans
}
参考答案PHP
<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param str string字符串 * @return int整型*/
function Substrings( $str )
{//枚举每一个中心向两边扩展$n = strlen($str);$ans = 0;for($i=0;$i<2*$n-1;$i++){$left = intval($i/2);$right = intval($i/2)+$i%2;while ($left >=0 && $right <$n && $str[$left] ==$str[$right]){$left--;$right++;$ans++;}}return $ans;
}