问题 B: 字母排列

时间限制: 1 Sec  内存限制: 64 MB
提交: 19  解决: 5
[提交][状态][讨论版]

题目描述

当给出一串字符时,我们逐个可以变换其字符,形成新的字符串。假如对这些字符进行排序(按字母顺序),那么,字符串本身被排序了。任何设定的变换都可能产生独特的决定其在排序中的位置的数字。例如,字符串“acab”产生12种不同的变换:
aabc    1   acab    5   bcaa    9
aacb    2   acba    6   caab   10
abac    3   baac    7   caba   11
abca    4   baca    8   cbaa   12
因此,字符串“acab”在这个序列中的位置被记作5。
编一个程序,读入一个字符串,计算出其在字符串变换顺序时的位置。注意这个变换的数值可能会很大,但是,我们可以保证,数值再大也不可能大于231-1。

输入

  一个字符串S。

输出

  一个整数,表示字符串在它的排列的序列中的位置。

样例输入

bacaa

样例输出

15

提示

50%的数据:字符串长度≤10;

100%的数据:字符串长度≤30

解题思路:用了next_permutation()函数,但是字符串长度是小于30的,会超时,不知道怎么才能改进.

代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring> using namespace std; int main()
{
char a[];
char base[];
int len=;
int b=;
long int cou=;
scanf("%s",a);
len=strlen(a);
do{
cou++;
}while(prev_permutation(a,a+len));
printf("%ld",cou);
return ;
}

字母排列_next_permutation_字典序函数_待解决的更多相关文章

  1. Java生成前三位是字母循环的字典

    title: Java生成前三位是字母循环的字典 date: 2018-08-17 18:52:22 tags: Java --- 最近要破解一个秘密,还好这个密码是有线索的,已知密码的前三位是三个字 ...

  2. Swift教程_swift常见问题(0005)_完美解决Cannot override &#39;dealloc&#39;异常

    Swift教程_swift常见问题(0001)_CoreData: warning: Unable to load class named 'xxx' for entity 'xxx' Swift教程 ...

  3. Jsp标签字典开发_基于Spring+Hibernate

    目录 1. Jsp标签字典开发_基于Spring+Hibernate 1.1. 简述 1.2. 定义DictItem实体 1.3. 定义字典的@interface 1.4. 定义字典缓存类 1.5. ...

  4. Java实现 LeetCode 524 通过删除字母匹配到字典里最长单词(又是一道语文题)

    524. 通过删除字母匹配到字典里最长单词 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到.如果答案不止一个,返回长度最长且字典顺序最小的字符 ...

  5. [Swift]LeetCode524. 通过删除字母匹配到字典里最长单词 | Longest Word in Dictionary through Deleting

    Given a string and a string dictionary, find the longest string in the dictionary that can be formed ...

  6. pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等)

    本文介绍Python3中String模块ascii_letters和digits方法,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9.string.p ...

  7. 【LeetCode】524-通过删除字母匹配到字典里最长单词

    题目描述 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到.如果答案不止一个,返回长度最长且字典顺序最小的字符串.如果答案不存在,则返回空字符串 ...

  8. 多测师讲解自动化测试 _如何解决验证码的问题_高级讲师肖sir

    自动化测试如何解决验证码的问题对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可 ...

  9. 2.9高级变量类型操作(列表 * 元组 * 字典 * 字符串)_内置函数_切片_运算符_for循环

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

随机推荐

  1. 【转】mac os x系统上Android开发环境的搭建

    由于Google官方已经不提供Adt-Bundle下载了,主推AndroidStudio.可以从这个链接下载http://www.androiddevtools.cn.上面不光有adt-bundle, ...

  2. Codevs1299 切水果

    题目描述 Description 简单的说,一共N个水果排成一排,切M次,每次切[L,R]区间的所有水果(可能有的水果被重复切),每切完一次输出剩下水果数量 数据已重新装配,不会出现OLE错误 时限和 ...

  3. soa vs cop

    soa强调分层:底层为高层提供服务: cop强调分块:有明确的职责和服务提供接口,为外部提供服务. SOA 原则非常强调将服务使用者和服务提供者分离开来,关于此类分离实际的含义,有很多不正式但非常有用 ...

  4. 初学JDBC,JDBC工具类的简单封装

    //工具类不需要被继承 public final class JdbcUtils{ //封装数据库连接参数,便于后期更改参数值 private static String url="jdbc ...

  5. Powerdesigner自定义DBMS(以derby数据库为例)

    Powerdesigner自定义DBMS Powerdesigner以下简称PD.PD默认支持的DBMS不够用时,我们就需要自己定义了.以apache derby数据库为例.1.DBMS的定义文件PD ...

  6. C++中map的概念,与简单操作

     来源:http://blog.csdn.net/wallwind/article/details/6876892 C++map学习   map<Key, Data, Compare, Allo ...

  7. <转>错误 x error LNK1104: 无法打开文件“E:\xxxx\Debug\xxxx.exe”

    刚刚还好好的,怎么突然就出现这样的错误, 后来分析原因, 第一:查看那个exe文件是否存在, 第二:查看那个文件或者那个文件所在的文件夹是否打开或者改名字等等操作占用着这个文件. 第三:重新清理并生成 ...

  8. PHP5 Session 使用详解(一)

    http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议.所谓无 状态,指的是不会维护http请求数据,http请求是独立的,不持久的.而越来越复杂的WEB应用,需要保存一些用户 ...

  9. index and polymorphic

    http://guides.rubyonrails.org/association_basics.html#polymorphic-associations class CreateStars < ...

  10. [BZOJ1220][POJ1091][HNOI2002]跳蚤

    [BZOJ1220][POJ1091][HNOI2002]跳蚤 试题描述 Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长. ...