程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> POJ 1256 Anagram

POJ 1256 Anagram

編輯:關於C++

給一個字符串包含大小寫字符,規定'A'<'a'<'B'<'b'<...<'Z'<'z',求該字符串的全排列。

用裸的dfs+map判重 寫了一遍超時了,那種機智的dfs方法沒有怎麼看懂。。

最開始用的set+next_permutation,太年輕,也超時了。。。

運用一個next_permutation()函數即可,頭文件

注意要先將字符串sort一遍,然後next_permutation()也要把比較函數cmp傳進去,原來都不知道可以三個參數的。。

 

 

#include
#include
#include
#include
#include
#include
using namespace std;
char s[20];

bool cmp(char a,char b)
{
    if(a>='a'&&a<='z'&&b>='a'&&b<='z') return a='A'&&a<='Z'&&b>='A'&&b<='Z') return a='A'&&a<='Z') a+=32;
    if(b>='A'&&b<='Z') b+=32;
    return a

 

 

用裸的dfs+map判重 寫了一遍超時了,那種機智的dfs方法沒有怎麼看懂。。

最開始用的set+next_permutation,太年輕,也超時了。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved