AP CS junior

涛涛最近要负责图书馆的管理⼯作,需要记录下每天读者的到访情况。
每位读者有⼀个唯⼀编号,每条记录⽤读者的编号来表示。
给出读者的来访记录,请问每⼀条记录中的读者是第⼏次出现。
输⼊的第⼀⾏包含⼀个整数 ,表示涛涛的记录条数。
第⼆⾏包含 个整数,依次表示涛涛的记录中每位读者的编号。
输出⼀⾏,包含 个整数,由空格分隔,依次表示每条记录中的读者编号是第⼏次出现。 ,
读者的编号为不超过 的正整数。
5
1 2 1 1 3
1 1 2 3 1

def stream(n,inp):
    return [inp[0:i+1].count(c) for i,c in enumerate(inp) if c != " "]
n,inp = 5,"1 2 1 1 3"  #1 1 2 3 1
print(stream(n,inp))

测试用例:

给出 3 个字符串:

`baba`
`aba`
`cba` 的最长公共字符串后缀是 `ba` 
import sys

def find_longest_common_suffix(str_list):
    if not str_list:
        return ""
    min_len = min(len(s) for s in str_list)
    max_suffix_len = 0
    for i in range(min_len):
        current_char = str_list[0][-(i+1)]
        for s in str_list[1:]:
            if s[-(i+1)] != current_char:
                return str_list[0][-max_suffix_len:] if max_suffix_len else ""
        max_suffix_len += 1
    return str_list[0][-max_suffix_len:] if max_suffix_len else ""
def main():
    lines = [line.strip() for line in sys.stdin if line.strip()]
    ptr = 0
    while ptr < len(lines):
        n = int(lines[ptr])
        ptr += 1
        if n == 0:
            break
        str_list = []
        for _ in range(n):
            str_list.append(lines[ptr])
            ptr += 1
        print(find_longest_common_suffix(str_list))

if __name__ == "__main__":
    main()
def Longest_Common_Suffix(ls):
    # 切片 [:-1]
    i,ans = 0,""
    suffix_len = min(map(len,(ls)))
    while i < suffix_len:
        s = [c[-i:] for c in ls]
        print(s)
        if len(set(s)) == 1:
            i += 1
            ans = s[-1]
        else:return s
    else:return s

ls = ['baba','aba','cba']
ls = ['aa','cc']
print(Longest_Common_Suffix(ls))
def create_spiral_matrix(n, m):
    if n == 0 or m == 0:
        return ""
    matrix = [[0 for _ in range(m)] for _ in range(n)]
    top, bottom, left, right = 0, n-1, 0, m-1
    num, total = 1, n * m

    while num <= total:
        # 从左到右
        remaining = total - num + 1
        if remaining <= 0:
            break
        fill = min(right - left + 1, remaining)
        for j in range(left, left + fill):
            matrix[top][j] = num
            num += 1
        top += 1
        if num > total:
            break

        # 从上到下
        remaining = total - num + 1
        if remaining <= 0:
            break
        fill = min(bottom - top + 1, remaining)
        for i in range(top, top + fill):
            matrix[i][right] = num
            num += 1
        right -= 1
        if num > total:
            break

        # 从右到左
        remaining = total - num + 1
        if remaining <= 0:
            break
        fill = min(right - left + 1, remaining)
        for j in range(right, right - fill, -1):
            matrix[bottom][j] = num
            num += 1
        bottom -= 1
        if num > total:
            break

        # 从下到上
        remaining = total - num + 1
        if remaining <= 0:
            break
        fill = min(bottom - top + 1, remaining)
        for i in range(bottom, bottom - fill, -1):
            matrix[i][left] = num
            num += 1
        left += 1

    # 高效拼接结果字符串
    rows = [" ".join(map(str, row)) for row in matrix]
    return "\n".join(rows)

# 示例测试
print(create_spiral_matrix(3, 3))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容