我在一个有竞争力的编码网站上做这个练习问题。我们有一个场景,在这个场景中,我们有一个智能浏览器,在其中我们不需要输入“www”。两个元音都没有。浏览器通过自己的方式输入这两件事。
我正在编写一个程序,显示智能网页网址和完整网页网址中字符号的比例。即。例如,www.google.com的智能url应该是ggl.com。因此,程序的显示将是7/14。我这样做了,但我的显示器是6/14。也就是说,每个测试用例都少一个.It。我不知道问题出在哪里
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();// no of testcases!
while(t > 0)
{
String st = sc.next();
int count = st.length();
count = count-4;
int count1 = st.length();
for(char da:st.toCharArray())
{
switch(da)
{
case 'a':
count = count -1;
break;
case 'e':
count = count -1;
break;
case 'i':
count = count-1;
break;
case 'o':
count = count -1;//System.out.println(da);
break;
case 'u':
count = count -1;
break;
}
}
System.out.print((count ) +"/" +count1) ;
System.out.println();
t--;
} 发布于 2015-01-21 09:00:09
ggl.com仍然包含元音,因此循环将减少o的count,程序将返回6而不是7。
注意,一般来说,url的域名可以有不同数量的元音-例如,com、gov和net有1,edu有2,fr有0。您的代码应该忽略上一个.后面的元音。
这可以解决您的问题:
....
String st = sc.next();
int count = st.length();
count = count-4;
int count1 = st.length();
st = st.substring(0,st.lastIndexOf('.')); // get rid of the domain name
for(char da:st.toCharArray())
...这假设只有最后一个.后面的元音应该保留在计数中。例如,如果在.co.il域中希望将o和i同时保存在计数中,则必须更改逻辑。
https://stackoverflow.com/questions/28063086
复制相似问题