1542: 字符串中的第一个唯一字符(加强版)

Memory Limit:2 MB Time Limit:0.035 S
Judge Style:Text Compare Creator:
Submit:206 Solved:22

Description


       给定一个只含有小写字母的字符串 str,找到它的按某种顺序第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。顺序是:1,2,3,5,7,11,…… 4,6,8,9,10,12 ……(即1,所有的素数位,所有的合数位)。(请你用队列来实现) 


示例 1:
输入: str = “choice“ 输出: h 2

示例 2:

输入: str = "workworking” 输出: g 11

因为i是第9位,n是第10位,都没有第11素数位靠前,所以输出11。


示例 3:
输入: str = “cancan” 输出: -1

Input

        输入一个只含有小写字母的字符串 str。str长度<=60000 

Output

     输出str的按顺序(1,素数位,合数位)第一个不重复的字符,并返回它的索引,字符与数字间空一格 。如果不存在,则返回 -1 。

Sample Input Copy

workworking

Sample Output Copy

g 11

HINT

约束:
  • 1 <= str长度 <= 60000
  • str 只包含小写字母


提示:

  • 本题时间和内存限制都比较小。
  • 注意算法的时间复杂度。
  • 使用printf/scanf代替cout/cin可以缩短运行时间及减少内存的使用。
  • 不用万能头头文件<stdc++.h>也能减少内存使用。