大数据,机器学习,人工智能Codility每周一课

Codility每周一课:P99.2 StrSymmetryPo

2019-03-21  本文已影响0人  AiFany
0.png

P99.2 StrSymmetryPoint
Find a symmetry point of a string, if any.

编写函数:

def solution(S)

从给出的字符串S中,找到并返回这样一个字符的下标(下标从0开始),使得这个字符左边的子字符串,刚好与右边的子字符串相反,但如果不存在这样的字符,返回−1。

例如,字符串S="racecar",函数应该返回3,因为对于下标为3的字符"e", 其左边相邻的子字符串是 "rac", 而右边相邻的子字符串是 "car",正好2个字符串是对称的。注:与空字符串(长度为0的字符串)对称的还是一个空字符串。

假定:
1,字符串S的长度为区间[0,2,000,000]内的整数;

根据字符串的长度判断,是偶数的话,肯定不可以。是奇数的话,等于1是肯定可以的。当不为1的奇数时,就判断前部分的字符串的逆序是否和后半部分一样。

# -*- coding:utf-8 -*-
# &Author  AnFany
# Lesson 99:Future training
# P 99.2 StrSymmetryPoint


def solution(S):
    """
    判断字符串S是否是中心对称的
    :param S: 字符串
    :return: 返回中心字符的下标或者-1
    """
    length = len(S)
    if length % 2 == 0:
        return -1
    if length == 1:
        return 0
    center = length // 2
    if S[:center][::-1] == S[center+1:]:
        return center
    else:
        return -1
image

点击获得更多编程练习题。欢迎Follow,感谢Star!!! 扫描关注微信公众号pythonfan,获取更多。

image image
上一篇 下一篇

猜你喜欢

热点阅读