首页 > 试题广场 >

向后找

[编程题]向后找
  • 热度指数:573 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}小美有一个长度为 n 的字符串 s = s_1s_2 \cdots s_n,对于字符串的第一个字符,她希望从末尾开始往前找,找到除第一个字符(s_1)外、首个与 s_1 相同的字符,并输出这个字符的位置(下标从 1 开始)。
\hspace{15pt}特别地,如果找不到,则输出 -1

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 10^3\right),表示字符串的长度。
\hspace{15pt}第二行输入一个长度为 n 的字符串 s,仅由小写字母构成。


输出描述:
\hspace{15pt}如果存在,则输出这个字符的位置;否则输出 -1
示例1

输入

5
abaca

输出

5
示例2

输入

3
zah

输出

-1
示例3

输入

1
m

输出

-1
头像 Silencer76
发表于 2025-08-11 20:55:56
题目链接 向后找 题目描述 给定一个长度为 的字符串 。要求从字符串的末尾开始向前查找,找到第一个与字符串首字符 相同的字符(但不能是 自身)。如果找到了,输出该字符的1-based下标;如果不存在这样的字符,则输出 -1。 解题思路 本题的目标非常明确:找到首字符在字符串其余部分中最后一次出 展开全文
头像 有胆量的柯基在学习
发表于 2025-08-19 21:31:50
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<char> s(n); for (int i = 0; i &l 展开全文