标签:灰灰 练习赛 String 牛客 字符串 str sc Scanner
比赛地址:https://ac.nowcoder.com/acm/contest/4743/A
题目描述
小乔和小灰灰是好朋友,现在如果一个字符串中同时出现子序列“XiaoQiao”和“XiaoHuiHui”,那么小乔和小灰灰都会感到开心。
如"abc"的子序列有:“a"、“b”、“c”、“ab”、“ac”、“bc”、“abc”。
输入描述:
输入包含一行一个字符串S
字符串中仅包含大写字母和小写字母
输出描述:
如果这个串会让小乔和小灰灰都感到开心,那么输出“Happy”,否则输出“emm”。
示例1
XiaoQiaoheHuiHui Happy
示例2
Xiaohuihuihexiaoqiao emm
备注:
1<=∣S∣<=1000{1<=|S|<=1000}1<=∣S∣<=1000
∣S∣表示字符串S的长度。
题解一:indexOf()
1 public static void main(String[] args) { 2 String son1 = "XiaoQiao"; 3 String son2 ="XiaoHuiHui"; 4 Scanner sc = new Scanner(System.in); 5 while (sc.hasNext()) { 6 String str = sc.nextLine(); 7 boolean check1 = isSubsequence(son1, str); 8 boolean check2 = isSubsequence(son2, str); 9 if(check1&&check2){ 10 System.out.println("Happy"); 11 }else { 12 System.out.println("emm"); 13 } 14 } 15 } 16 //indexOf(char c,int m)意思是从第m位置开始寻找该索引,找到则返回该索引,否则返回-1 17 public static boolean isSubsequence(String son, String str) { 18 int index = -1; 19 for (char c : son.toCharArray()) { 20 //返回第一次出现的指定子字符串在此字符串中的索引 21 index = str.indexOf(c, index + 1); 22 if (index == -1) 23 return false; 24 } 25 return true; 26 }
题解二:循环遍历
1 public static void main01() { 2 Scanner sc=new Scanner(System.in); 3 String s=sc.next(); 4 String s1="XiaoQiao"; 5 String s2="XiaoHuiHui"; 6 int a=0,b=0; 7 for (int i = 0; i <s.length(); i++) { 8 char c=s.charAt(i); 9 if(c==s1.charAt(a)) { 10 a++; 11 } 12 if(c==s2.charAt(b)) { 13 b++; 14 } 15 } 16 if(a==8&&b==10) { 17 System.out.println("Happy"); 18 }else { 19 System.out.println("emm"); 20 } 21 }
经验:
需要搞清楚父子关系,输入的是父串,而且两个子串的顺序不能改变
标签:灰灰,练习赛,String,牛客,字符串,str,sc,Scanner 来源: https://www.cnblogs.com/Blog-cpc/p/12492490.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。