100分求 拼音多音字组合运算

问题描述

例如输入行行行行多音字为hangxingheng所以为hanghanghangxingxingxinghenghengheng现在求怎么运算能得出所有组合输出:hanghanghangXinghanghangHenghanghangXingxinghangXinghenghang.........等急求代码运算

解决方案

解决方案二:
补充:当然也要支持也要支持例如任我行拼音为RenwoxingHang组合应为RenwoxingRenwohang循环次数越少越好
解决方案三:

解决方案四:
没看出这样做有任何意义
解决方案五:
//定义拼音区编码数组staticint[]getValue=newint[]{-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036,-20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775,-19774,-19763,-19756,-19751,-19746,-19741,-19739,-19728,-19725,-19715,-19540,-19531,-19525,-19515,-19500,-19484,-19479,-19467,-19289,-19288,-19281,-19275,-19270,-19263,-19261,-19249,-19243,-19242,-19238,-19235,-19227,-19224,-19218,-19212,-19038,-19023,-19018,-19006,-19003,-18996,-18977,-18961,-18952,-18783,-18774,-18773,-18763,-18756,-18741,-18735,-18731,-18722,-18710,-18697,-18696,-18526,-18518,-18501,-18490,-18478,-18463,-18448,-18447,-18446,-18239,-18237,-18231,-18220,-18211,-18201,-18184,-18183,-18181,-18012,-17997,-17988,-17970,-17964,-17961,-17950,-17947,-17931,-17928,-17922,-17759,-17752,-17733,-17730,-17721,-17703,-17701,-17697,-17692,-17683,-17676,-17496,-17487,-17482,-17468,-17454,-17433,-17427,-17417,-17202,-17185,-16983,-16970,-16942,-16915,-16733,-16708,-16706,-16689,-16664,-16657,-16647,-16474,-16470,-16465,-16459,-16452,-16448,-16433,-16429,-16427,-16423,-16419,-16412,-16407,-16403,-16401,-16393,-16220,-16216,-16212,-16205,-16202,-16187,-16180,-16171,-16169,-16158,-16155,-15959,-15958,-15944,-15933,-15920,-15915,-15903,-15889,-15878,-15707,-15701,-15681,-15667,-15661,-15659,-15652,-15640,-15631,-15625,-15454,-15448,-15436,-15435,-15419,-15416,-15408,-15394,-15385,-15377,-15375,-15369,-15363,-15362,-15183,-15180,-15165,-15158,-15153,-15150,-15149,-15144,-15143,-15141,-15140,-15139,-15128,-15121,-15119,-15117,-15110,-15109,-14941,-14937,-14933,-14930,-14929,-14928,-14926,-14922,-14921,-14914,-14908,-14902,-14894,-14889,-14882,-14873,-14871,-14857,-14678,-14674,-14670,-14668,-14663,-14654,-14645,-14630,-14594,-14429,-14407,-14399,-14384,-14379,-14368,-14355,-14353,-14345,-14170,-14159,-14151,-14149,-14145,-14140,-14137,-14135,-14125,-14123,-14122,-14112,-14109,-14099,-14097,-14094,-14092,-14090,-14087,-14083,-13917,-13914,-13910,-13907,-13906,-13905,-13896,-13894,-13878,-13870,-13859,-13847,-13831,-13658,-13611,-13601,-13406,-13404,-13400,-13398,-13395,-13391,-13387,-13383,-13367,-13359,-13356,-13343,-13340,-13329,-13326,-13318,-13147,-13138,-13120,-13107,-13096,-13095,-13091,-13076,-13068,-13063,-13060,-12888,-12875,-12871,-12860,-12858,-12852,-12849,-12838,-12831,-12829,-12812,-12802,-12607,-12597,-12594,-12585,-12556,-12359,-12346,-12320,-12300,-12120,-12099,-12089,-12074,-12067,-12058,-12039,-11867,-11861,-11847,-11831,-11798,-11781,-11604,-11589,-11536,-11358,-11340,-11339,-11324,-11303,-11097,-11077,-11067,-11055,-11052,-11045,-11041,-11038,-11024,-11020,-11019,-11018,-11014,-10838,-10832,-10815,-10800,-10790,-10780,-10764,-10587,-10544,-10533,-10519,-10331,-10329,-10328,-10322,-10315,-10309,-10307,-10296,-10281,-10274,-10270,-10262,-10260,-10256,-10254};//定义拼音数组staticstring[]getName=newstring[]{"A","Ai","An","Ang","Ao","Ba","Bai","Ban","Bang","Bao","Bei","Ben","Beng","Bi","Bian","Biao","Bie","Bin","Bing","Bo","Bu","Ba","Cai","Can","Cang","Cao","Ce","Ceng","Cha","Chai","Chan","Chang","Chao","Che","Chen","Cheng","Chi","Chong","Chou","Chu","Chuai","Chuan","Chuang","Chui","Chun","Chuo","Ci","Cong","Cou","Cu","Cuan","Cui","Cun","Cuo","Da","Dai","Dan","Dang","Dao","De","Deng","Di","Dian","Diao","Die","Ding","Diu","Dong","Dou","Du","Duan","Dui","Dun","Duo","E","En","Er","Fa","Fan","Fang","Fei","Fen","Feng","Fo","Fou","Fu","Ga","Gai","Gan","Gang","Gao","Ge","Gei","Gen","Geng","Gong","Gou","Gu","Gua","Guai","Guan","Guang","Gui","Gun","Guo","Ha","Hai","Han","Hang","Hao","He","Hei","Hen","Heng","Hong","Hou","Hu","Hua","Huai","Huan","Huang","Hui","Hun","Huo","Ji","Jia","Jian","Jiang","Jiao","Jie","Jin","Jing","Jiong","Jiu","Ju","Juan","Jue","Jun","Ka","Kai","Kan","Kang","Kao","Ke","Ken","Keng","Kong","Kou","Ku","Kua","Kuai","Kuan","Kuang","Kui","Kun","Kuo","La","Lai","Lan","Lang","Lao","Le","Lei","Leng","Li","Lia","Lian","Liang","Liao","Lie","Lin","Ling","Liu","Long","Lou","Lu","Lv","Luan","Lue","Lun","Luo","Ma","Mai","Man","Mang","Mao","Me","Mei","Men","Meng","Mi","Mian","Miao","Mie","Min","Ming","Miu","Mo","Mou","Mu","Na","Nai","Nan","Nang","Nao","Ne","Nei","Nen","Neng","Ni","Nian","Niang","Niao","Nie","Nin","Ning","Niu","Nong","Nu","Nv","Nuan","Nue","Nuo","O","Ou","Pa","Pai","Pan","Pang","Pao","Pei","Pen","Peng","Pi","Pian","Piao","Pie","Pin","Ping","Po","Pu","Qi","Qia","Qian","Qiang","Qiao","Qie","Qin","Qing","Qiong","Qiu","Qu","Quan","Que","Qun","Ran","Rang","Rao","Re","Ren","Reng","Ri","Rong","Rou","Ru","Ruan","Rui","Run","Ruo","Sa","Sai","San","Sang","Sao","Se","Sen","Seng","Sha","Shai","Shan","Shang","Shao","She","Shen","Sheng","Shi","Shou","Shu","Shua","Shuai","Shuan","Shuang","Shui","Shun","Shuo","Si","Song","Sou","Su","Suan","Sui","Sun","Suo","Ta","Tai","Tan","Tang","Tao","Te","Teng","Ti","Tian","Tiao","Tie","Ting","Tong","Tou","Tu","Tuan","Tui","Tun","Tuo","Wa","Wai","Wan","Wang","Wei","Wen","Weng","Wo","Wu","Xi","Xia","Xian","Xiang","Xiao","Xie","Xin","Xing","Xiong","Xiu","Xu","Xuan","Xue","Xun","Ya","Yan","Yang","Yao","Ye","Yi","Yin","Ying","Yo","Yong","You","Yu","Yuan","Yue","Yun","Za","Zai","Zan","Zang","Zao","Ze","Zei","Zen","Zeng","Zha","Zhai","Zhan","Zhang","Zhao","Zhe","Zhen","Zheng","Zhi","Zhong","Zhou","Zhu","Zhua","Zhuai","Zhuan","Zhuang","Zhui","Zhun","Zhuo","Zi","Zong","Zou","Zu","Zuan","Zui","Zun","Zuo"};

解决方案六:
//建立一个convertCh方法用于将汉字转换成全拼的拼音,其中,参数代表汉字字符串,此方法的返回值是转换后的拼音字符串///<summary>///汉字转换成全拼的拼音///</summary>///<paramname="Chstr">汉字字符串</param>///<returns>转换后的拼音字符串</returns>publicstaticstringconvertCh(stringChstr){Regexreg=newRegex("^[u4e00-u9fa5]$");//验证是否输入汉字byte[]arr=newbyte[2];stringpystr="";intasc=0,M1=0,M2=0;char[]mChar=Chstr.ToCharArray();//获取汉字对应的字符数组for(intj=0;j<mChar.Length;j++){//如果输入的是汉字if(reg.IsMatch(mChar[j].ToString())){arr=System.Text.Encoding.Default.GetBytes(mChar[j].ToString());M1=(short)(arr[0]);M2=(short)(arr[1]);asc=M1*256+M2-65536;if(asc>0&&asc<160){pystr+=mChar[j];}else{switch(asc){case-9254:pystr+="Zhen";break;case-8985:pystr+="Qian";break;case-5463:pystr+="Jia";break;case-8274:pystr+="Ge";break;case-5448:pystr+="Ga";break;case-5447:pystr+="La";break;case-4649:pystr+="Chen";break;case-5436:pystr+="Mao";break;case-5213:pystr+="Mao";break;case-3597:pystr+="Die";break;case-5659:pystr+="Tian";break;default:for(inti=(getValue.Length-1);i>=0;i--){if(getValue[i]<=asc)//判断汉字的拼音区编码是否在指定范围内{pystr+=getName[i];//如果不超出范围则获取对应的拼音break;}}break;}}}else//如果不是汉字{pystr+=mChar[j].ToString();//如果不是汉字则返回}}returnpystr;//返回获取到的汉字拼音}}}

我只有这个类。其它的帮不了你。[/code]
解决方案七:
引用1楼heiha008的回复:

补充:当然也要支持也要支持例如任我行拼音为RenwoxingHang组合应为RenwoxingRenwohang循环次数越少越好

组合的遍历输出,肯定要访问每一个字的多个拼音值。最终复杂度为O(n1*n2*n3*...*nk),其中ni是第i个字的多音次数,k为k个多音字。最简单的,k重循环输出即可。
解决方案八:
能否贴上代码呢
解决方案九:
递归,每个字依次去找它自己的拼音,并且循环每一个值输出如果是一篇文章,你也要这么干的话,跑100年也跑不完这个程序
解决方案十:
这个是返回行字多音字首字母的你可以修改下改成返回全拼http://blog.csdn.net/qq873113580/article/details/10583017这个是排列组合的排列组合出所有的http://blog.csdn.net/qq873113580/article/details/10521915
解决方案十一:
引用1楼heiha008的回复:

补充:当然也要支持也要支持例如任我行拼音为RenwoxingHang组合应为RenwoxingRenwohang循环次数越少越好

“循环次数”无所谓少,少了就不能给出正确的结果,没有正确结果那么再少的循环次数也是白循环。关键是,你不能乱写什么“n个循环”,因为输入多少个汉字根本不定。你要写一个递归计算程序,假设有n(n>1)个汉字,那么先计算n-1个汉字的结果,再跟第n个汉字的(一个或者多个)拼音组合起来输出。为了保证尽早输出结果,避免递归在内存占用方面的巨大副作用,你应该使用c#的迭代器技术(yieldreturn之类的语句)。虽然算法是递归,但是必须使用迭代器将递归算法自动转换为迭代程序。(想要别人给你免费写程序,请预约挂号)
解决方案十二:
引用9楼qq873113580的回复:

这个是返回行字多音字首字母的你可以修改下改成返回全拼http://blog.csdn.net/qq873113580/article/details/10583017这个是排列组合的排列组合出所有的http://blog.csdn.net/qq873113580/article/details/10521915

这位兄弟,下次请把网站链接设置下格式,方便后来者直接点击访问。谢谢!(想要别人给你免费写程序,请预约挂号)
解决方案十三:

解决方案十四:
引用11楼zhi_ai_yaya的回复:

Quote: 引用9楼qq873113580的回复:
这个是返回行字多音字首字母的你可以修改下改成返回全拼http://blog.csdn.net/qq873113580/article/details/10583017这个是排列组合的排列组合出所有的http://blog.csdn.net/qq873113580/article/details/10521915

这位兄弟,下次请把网站链接设置下格式,方便后来者直接点击访问。谢谢!(想要别人给你免费写程序,请预约挂号)

3Q3Q
解决方案十五:
(想要别人给你免费写程序,请预约挂号)先到我这里把挂号费交了。
解决方案:
之前做过一个功能,和楼主的需求有一点点联系。当时是将全拼的码表反编译,生成TXT档,然后导到数据库中,这样就得到一个表,存放了汉字对应的拼音。(楼上也有人给了其他办法)这样在生成组合时,就可以先查这个表,找出全部的读音,再进行组合。
解决方案:
别特么逗了程序能处理多音字?引用

和5个音1he(二声)---日本和服2he(四声)---曲高和寡3hu(二声)---打麻将和牌4huo(二声)---和面5huo(四声)---衣服已经洗了三和

代码能分析这东西?就算你把2013年的新华字典扔到程序中你查询到的依然是2013年以前的多音字..难道你不知道一些"有关部门"可以对文字的多音字进行随意修改的?该完之后呢?他会告诉你吗?会往你的数据库里insert一条记录?简单的例子来说<重庆>中的重为什么叫chong而不是zhong?"有关部门"说的算..说他是什么就是什么所以综上所述,此题无解...
解决方案:
例如输入行行行行多音字为hangxingheng多音规则你自己定义剩下的就是全排列算法
解决方案:
要做多音字,还要带上音标比如háng
解决方案:
问题不大,ls滴楼盖偏了1.如果获取多音字,楼上有代码,当然我个人建议使用微软自己的MicrosoftVisualStudioInternationalPack库就行,不必自己来2.有关组合,其实那就是一个“笛卡儿积”,这玩意可以说是简单的基本数学问题,只是不知道最近为什么有这么多人问,如果不知道怎么办请百度“C#笛卡儿积”2分钟内搞定

时间: 2024-08-31 07:07:29

100分求 拼音多音字组合运算的相关文章

100分求汉语词组大全啊

问题描述 有个项目需要汉语词组大全,不知道哪位手头有这样的库呢?如果有的话,麻烦给一份yuanchuan2001@sina.com十分感谢,100分奉上 解决方案 解决方案二:jf解决方案三:顶顶,继续求-感谢哪位给一份解决方案四:帮楼主顶解决方案五:继续求--解决方案六:jf这个不是分能求来的解决方案七:痛苦,不知道如何能获得呢??

100分求一个随机数生成算法

问题描述 500000元分给1000000个人,每个人分0.18到88元,正好分完.请问如何使用算法实现? 解决方案 解决方案二:decimalsumMoney=500000m;//总金额intremainPerson=1000000;Dictionary<string,decimal>dicResult=newDictionary<string,decimal>();//存储分配结果voidPenny(){decimalmoney=0m;//每人分到的金额for(inti=0;i

[100分]求ms ajax中关于js 调用服务端代码的方法

问题描述 以前用AjaxPro好像很容易,但换成MsAjax后不知该怎么做.要能实现异步回传的,就是在页面中使用了UpdatePanel控件.我提问一般都是给100分的.知道的快来吧. 解决方案 解决方案二:没用过.解决方案三:该回复于2008-04-10 08:33:57被版主删除解决方案四:没用过.解决方案五:该回复于2008-04-10 08:33:55被版主删除解决方案六:我现在正在学一本书叫asp.netajax程序设计第II卷microsoftajaxlibrary异步通信层是陈黎夫

100分求一句Oracle中的语句,解决马上给分,谢谢,比较急

问题描述 select贷方,余额fromAAA 查询结果如下:贷方余额0.0050000.008000.0042000.00其中"50000.00"和"8000"是查出来的,"42000.00"是根据:-1*贷方+上一行的余额算出来的,可我不知道语句该怎么写,求指教.号没分了,开个马甲问下,谢谢,解决马上给分 解决方案 解决方案二:是加吗?按照上面的说来,应该是减的吧另外你这是查询一个总的结果是吗?解决方案三:算法我已经给出来了,你自己看啊-1*

100分求CustomValidator验证控件的问题

问题描述 上传图片,用的是服务器端控件FileUpload,想用CustomValidator验证图片上传的大小,不想在后台判断,请问代码应该怎么写啊,在此跪求了,图片上传大小控制在200k 解决方案 解决方案二:用CustomValidator来验证这个好像不好弄吧,你用JAVASCRIPT来控制呢百度里搜一下,有很多这样的资料的解决方案三:靠JShttp://blog.csdn.net/drago37net/archive/2006/09/12/1214938.aspx参考下...解决方案四

100分求高手将fckeditor中的浏览器图片列表进行分页

问题描述 fckeditor中点浏览后,出现的图片列表是没有分页的,而客户因每天有大量的图片要上传,打开时就慢了,求高手加上个分页显示功能,达到分页显示不胜感谢,并双手送上分!急原图如下:在显示中加上分页 解决方案 解决方案二:没做过哦不过做过静态一个文件夹图片分页还是可以的解决方案三:fckeditor还有这功能呀,没仔细研究过.解决方案四:我只是想在这个地方有分页显示,这样打开就快些,因这个是在服务器文件夹中,不知如何搞,求高手指导一下!解决方案五:那就做个图片表了每次读数据只读取对应的某些

100分求一个解决方法,救命,在线急等!

问题描述 我昨天下了一个DXperience-7.2.5.exe但是一直都不能用,我求一个破解的方法,哪位大哥,能给我一个答案呢,再线等我是从这个页面下载的http://www.devexpress.com/Downloads/NET/DXperience/ 解决方案 解决方案二:7.2.1的完全有破解的.......我看功能差别也不会很大!解决方案三:能不能给一个详细点的下载地址呢.还有破解方法!解决方案四:http://download.csdn.net/source/269333http:

100分求treeview 用法代码

问题描述 我的类别设置是这样的3个长度为一个级别表tableABC1000类别12001类别23002类别34000000类别115001000类别216002001类别32怎么写递归把所有类别输出,求完整代码c#,谢谢,急用 解决方案 解决方案二:TreeNodenode=newTreeNode();node.Text="dgd服务器";node.Value="0";Stringsql="selectnamefromsysdatabases";

100分求动态title【比较难】

问题描述 一个新闻系统,某条新闻的网址news.aspx?id=123access数据库里保存了两种标题,一个中文"标题123",一个英文"title123".网页自动识别访客IE的语言设置成中英文(这个已经实现了,并且中英两个资源文件里分别有1个标题).请问资源文件里的这两个死标题如何动态读取读取access数据库?毕竟我的新闻有很多.不要简单云云title,runat=server之类的,请给出让人听得懂的说明,有程序最好,100分给解决问题的人. 解决方案 解