字符串全组合(淘宝宝贝关键字)
2018-06-18 04:53:21来源:未知 阅读 ()
小伙伴最近开了家淘宝店,每天为宝贝的名称弄得很麻烦,经常需要根据不同的关键字来组合宝贝的名称,但不知道啥组合能引入更多的流量,所以每个都试着弄弄看,所以这就需要一个字符串的组合。
在那个夜黑风高的晚上,小伙伴带着我去华强北吃了寿司,无意间谈了这个小东西,实现难度不高,立刻动手:
1 internal class Program 2 { 3 /* 4 思路:获取需要组合的字符串数组,循环读取字符串数组成立组合,再根据该组合循环再去组合,其实就是递归读取,用Contains判断是有包含即可 5 */ 6 private static void Main(String[] args) 7 { 8 //调用方法,传入字符串 9 showStr(); 10 Console.Read(); 11 } 12 13 public static void showStr() 14 { 15 string[] str1 = new string[] {"好用的", "4s", "苹果", "乔布斯"}; //原始数组 16 string[] str2 = new string[] {"好用的", "4s", "苹果", "乔布斯"}; //变化数组 17 18 //循环读取str1字符串数组 19 for (int x = 2; x <= str1.Length; x++) 20 { 21 //调用方法,传入 原始字符串数组 和 前一次的字符串数组,获得新的字符串数组 22 str2 = ChangeStr(str1, str2); 23 if (str2 == null) 24 { 25 break; 26 } 27 PrintString(str2); //输出本次的转换 28 } 29 } 30 31 32 //定义方法,接收 原始字符串数组 和 前一次的字符串数组,并返回新字符串数组 33 public static String[] ChangeStr(String[] chs, String[] oldStrs) 34 { 35 //因为新字符串数组长度暂时无法确定,也为了转换方便,所以使用StringBuilder来接收每个新字符串 36 StringBuilder sb = new StringBuilder(); 37 //定义新字符串数组 38 String[] newStrs = null; 39 40 //外循环,遍历每个字符串数组 41 for (int x = 0; x < oldStrs.Length; x++) 42 { 43 //内循环,遍历每个原始字符串,将每个字符串把每个不同字符都单独添加一次 44 for (int y = 0; y < chs.Length; y++) 45 { 46 //判断字符串是否包含该字符串 47 if (oldStrs[x].Contains(chs[y])) 48 //已包含该字符,则不操作,继续下次循环 49 continue; 50 //不包含该字符,则添加该字符 51 String s = oldStrs[x] + chs[y]; 52 //添加新字符串到StringBuilder对象并用','隔开 53 sb.Append(s).Append(','); 54 } 55 } 56 //获得新字符串数组 57 if (sb.Length != 0) 58 { 59 newStrs = sb.Remove(sb.Length - 1, 1).ToString().Split(','); 60 } 61 return newStrs; 62 } 63 64 public static void PrintString(String[] strs) 65 { 66 foreach (var str in strs) 67 { 68 Console.Write(str); 69 Console.WriteLine(); 70 } 71 } 72 }
这个也是软件的算法之一,其实这个可以衍生更多好玩的,例如记录这个关键字组合用了多少次,引入了多少流量,实现这功能用什么交互等,这也是下一步需要做的~
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java实现的三种字符串反转 2020-06-09
- 我说我精通字符串,面试官竟然问我Java中的String有没有长度 2020-05-20
- LeetCode 680. 验证回文字符串 Ⅱ 2020-05-19
- 字符串 2020-05-18
- LeetCode 151. 翻转字符串里的单词 2020-05-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash