循环单词

如果一个单词通过循环右移获得的单词,我们称这些单词都为一种循环单词。例如:picture 和 turepic 就是属于同一种循环单词。现在给出n个单词,需要统计这个n个单词中有多少种循环单词。

输入描述:
输入包括n+1行:

第一行为单词个数n(1 ≤ n ≤ 50)

接下来的n行,每行一个单词word[i],长度length(1 ≤ length ≤ 50)。由小写字母构成

 

输出描述:
输出循环单词的种数

 

输入例子:
5
picture
turepic
icturep
word
ordw

 

输出例子:
2

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.Scanner;

 

public classLoopword {

   public static void main(String[] args) {

      Scannerin=newScanner(System.in);

      int n=in.nextInt();

      String[]words=new String[n];

      for(int i=0;i<n;i++){

         words[i]=in.next();

         }

      int res=func(words);

      System.out.println(res);

   }

 private staticintfunc(String[] src){

    int res=0;

    int match=0;

    int len=src.length;

    List<String> list=new ArrayList<String>();

    for(inti=0;i<len;i++){

       Iterator itr=list.iterator();

       while(itr.hasNext()){

          if(isSame(src[i],(String)itr.next())){

             match=1;break;

          }

       }

       if(match!=1){

          res++;

          list.add(src[i]);

       }else{

          match=0;

       }

    }

    return res;

 }

 private staticbooleanisSame(String src,String target){

    int s_len=src.length();

    int t_len=target.length();

    if(src==null || s_len==0 || target==null || t_len==0) return false;

    if(s_len!=t_len) return false;

    String tmp=target.concat(target);

    if(tmp.contains(src)){

       return true;

    }

    return false;

 }

}

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页