zoukankan      html  css  js  c++  java
  • 360面试题:偶串(Web)

    时间限制:C/C++语言2000MS;其他语言4000MS

    内存限制:C/C++语言65536KB;其他语言589824KB

    题目描述:

      一个字符串S是偶串,当且仅当S中的没有个字符都出现了偶数次。如字符串“aabccb”是一个偶串,因为字符a,b,c都出现了两次。而字符串“abbcc”不是偶串,因为字符a出现了一次。

      现在给出一个长度为n的字符串T=t1,t2,t3,t4,...,tn。字符串的子串为其中任意连续一段。T长度为1的子串有n个,长度为2的子串为n-1个,以此类推,T一共有n(n-1)/2个子串。给定T,你能算出它有多少个子串是偶串吗?

    输入:

      输入一个字符串T,T中只有小写字母。T的长度不超过100000。

    输出:

      子串中偶串的个数。

     1 package com.zdt.com;
     2 
     3 import java.util.Scanner;
     4 
     5 public class main {
     6 
     7     public static void main(String[] args) {
     8         // TODO Auto-generated method stub
     9         Scanner scan = new Scanner(System.in);
    10         String T =scan.next();
    11         int count=0;
    12         for(int i = 2;i<=T.length();i+=2){
    13             for(int j=0;j<T.length()-i+1;j++){
    14                 String test = T.substring(j, j+i);
    15                 if(panding(test)){
    16                     count++;
    17                 }
    18             }
    19         }
    20         System.out.println(count);
    21     }
    22     public static boolean panding(String test){
    23         int a[]= new int[128];
    24         //初始化
    25         for(int i=0; i<128;i++){
    26             a[i]=0;
    27         }
    28         //进行判定,填充判定数组
    29         for(int i=0;i<test.length();i++){
    30             int  num  = Integer.valueOf(test.charAt(i));
    31             if(a[num]==0){
    32                 a[num]+=1;
    33             }
    34             else{
    35                 a[num]-=1;
    36             }
    37         }
    38         //数组求和
    39         int sum=0;
    40         for(int i=0;i<128;i++){
    41             sum+=a[i];
    42         }
    43         //判定
    44         if(sum==0)
    45             return true;
    46         else
    47             return false;
    48     }
    49 }
    Java Code
  • 相关阅读:
    shiro
    leetcode696 C++ 36ms 计算二进制子串
    leetcode557 C++ 56ms 反转字符串中的每个单词
    leetcode657 C++ 16ms 判断回环
    leetcode709 C++ 4ms 转换成小写字母
    leetcode141 C++ 8ms 环形链表
    leetcode160 C++ 32ms 相交链表
    leetcode234 C++ 28ms 回文链表
    leetcode203 C++ 28ms 删除链表中满足条件的节点
    leetcode83 C++ 12ms 删除有序链表中的重复元素
  • 原文地址:https://www.cnblogs.com/zdtiio/p/6618505.html
Copyright © 2011-2022 走看看