一个题目
为了防止大家摸鱼的时候编程的能力会退步,现在出了一道题给大家来做
大家写出来代码私信发我
题目悬赏400积分(第一个提交给我的人可以得到)
语言限制:
- Pascal
- C
- C++
- Python
- Java
- Rust
- Go
- Haskell
- Kotlin/JVM
- Scala
- C# Mono
- Node.js LTS
- PHP
- Ruby
- Perl
题目描述
现有一段明文和一部分密文。明文和密文都由英文单词组成,且密文中的一个单词必然对应着明文中的一个单词。
求给出的密文在明文中可能出现的最早位置。
输入格式
第一行,若干个英文单词和一个 \texttt \$,表示明文。
第二行,若干个英文单词和一个 \texttt \$,表示密文。
每行末尾的 \texttt \$ 用于表示该行结束。数据保证没有多个 \texttt \$ 出现在同一行的情况。
输出格式
输出密文在明文中可能出现的最早位置,即密文的第一个单词在明文中可能出现的最早位置。
样例 #1
样例输入 #1
a a a b c d a b c $
x y $
样例输出 #1
3
样例 #2
样例输入 #2
xyz abc abc xyz $
abc abc $
样例输出 #2
2
样例 #3
样例输入 #3
a b c x c z z a b c $
prvi dr prvi tr tr x $
样例输出 #3
3
提示
【数据规模与约定】
- 对于 100% 的数据,明文和密文所对应字符串的长度不超过 10^6 ,输入的单词均由小写字母组成。
-
题目
😡 不把我PHP排第一不做
前端垃圾不配做这种题
666这不就是为我这种OIer准备的
提供一个思路:定义一个bool数组,暂定为c[i],再定义一个bool数组,暂定为d[i]
a[i]--明文
b[i]--密文
c[i]代表是否(a[i]==a[i+1])
d[i]代表是否(b[i]==b[i+1])
判断d[i]在c[i]中第一次出现的位置
我觉得是个模式匹配的问题,所以我通过构造一个密文的正则表达式来做模式匹配。不过感觉效率很差就是了
看了大佬的思路后我发现我的思路有点问题
这个密文好像不是只用一个bool数组就能表达、
会做,但是我是一条懒狗