C#算法之判断一个字符串是否是对称字符串

static bool IsSymmetry1(string str)
{
    if (string.IsNullOrEmpty(str) || str.Length == 1)
    {
        return false;
    }
    for (int i = 0; i < str.Length / 2; i++)
    {
        if (str[i] != str[str.Length - 1 - i])
        {
            return false;
        }
    }
    return true;
}
static bool IsSymmetry2(string str)
{
    if (string.IsNullOrEmpty(str) || str.Length == 1)
    {
        return false;
    }
    var halfLength = str.Length/2;
    var str1 = str.Substring(0, halfLength);
    var str2 = new String(str.Substring(str.Length%2 == 0 ? halfLength : halfLength + 1, halfLength).Reverse().ToArray());
    return str1.Equals(str2);
}

效果也能实现,没用遍历,看起来比上个方案要高大上,实际运行效率更低。

时间: 2024-10-13 22:30:20

C#算法之判断一个字符串是否是对称字符串的相关文章

经典算法之判断一个整数是否为素数

经典算法之判断一个整数是否为素数 1 /** 2 判断一个数是否为素数 如: 3 输入: 任意一个数 12 4 输出: 1或0(1表示为素数) 0 5 */ 6 /**************被称为笨蛋的做法************/ 7 #include <stdio.h> 8 9 int main() 10 { 11 12 int i,n; //i为计数数,n为存储用户输入的数 13 14 do //循环检测用户输入的数据>0为合法 15 scanf("%d",&

算法之判断一个图是否有环

在一些经典算法中,经常需要判断一些图是否具有环路,比如拓扑排序,需要在最初判断该图是否有环路,如有有环路,则无法找到最长的一条线,比如dijkstra算法,每找到一条最短的边,都要判断找到的边和现有的树是否已经构成了环路. 因此,在这篇博客,我们重点来说一个判断图是否有环的算法. 首先我们介绍一个对于无向图和有向图通用的算法,先讲算法思路: 1.统计各个图中各个点的入度数(能够到达这个点的点). 2.然后找出入度数为0的点(无向图找入度数为1的点). 3.删除入度数为0的点,将其边也删除. 4.

设计一个算法,判断一个二叉树是否为完全二叉树

思想:根据完全二叉树的定义,对完全二叉树按照从上到下.从左到右的层次遍历,应该满足一下两条要求: ●某节点没有左孩子,则一定无右孩子 ●若某节点缺左或右孩子,则其所有后继一定无孩子 若不满足上述任何一条,均不为完全二叉树. 算法思路:采用层序遍历算法,用cm变量值表示迄今为止二叉树为完全二叉树(其初值为1,一旦发现不满足上述条件之一,则置cm为0),bj变量值表示迄今为止所有节点均有左右孩子(其初值为1),一旦发现一个节点没有左孩子或没有右孩子时置bj为0),在遍历完毕后返回cm的值. 对应的算

判断一个含多种括号的字符串是否匹配正确 (如(([]))正确,[[(()错误)

1 public boolean isMatch(String str){ 2 Stack stack = new Stack(); 3 for(int i = 0; i < str.length(); ++i){ 4 char ch = str.charAt(i); 5 if(ch == '[' || ch == '{' || ch == '('){ 6 stack.push(ch); 7 } else if(ch == ']' || ch == '}' || ch == ')'){ 8 if

Java基础知识强化47:StringBuffer类之判断一个字符串是否对称案例

1. 分析:判断一个字符串是否是一个对称的字符串,我们只需要把字符串的第1个字符和最后1个字符,第2个字符和倒数第2个字符,…… 比较的次数是长度除以2. 2. 案例演示: 1 package cn.itcast_07; 2 3 import java.util.Scanner; 4 5 /* 6 * 判断一个字符串是否是对称字符串 7 * 例如"abc"不是对称字符串,"aba"."abba"."aaa"."mna

5.34 判断一个字符串是否对称案例

import java.util.Scanner; /*  * 判断一个字符串是否是对称字符串  * 例如"abc"不是对称字符串,"aba"."abba"."aaa"."mnanm"是对称字符串  *   * 分析:  *  判断一个字符串是否是对称的字符串,我只需要把  *  第一个和最后一个比较  *  第二个和倒数第二个比较  *  ...  *  比较的次数是长度除以2.  */ public c

算法积累(字符串转换驼峰,判断一个字符串中那个字母出现次数最多,并且出现了几次)

因为算法比较烂,所以想做一下这方面的积累. 尽量能够每天学习一个新算法吧.(不过估计很悬) 好吧,今天第一个是字符串转换驼峰 直接上代码 var str = 'toupper-case'; var arr = str.split('-'); //toupper,case for (var i = 1; i < arr.length; i++) { //把除了第一个数组后面的数组的第一个值设置为大写然后大写字母和去掉第一个字符的剩下的字符进行拼合 arr[i] = arr[i].charAt(0)

回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文。

回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文. 要求: 1)采用链栈实现算法: 2)从键盘输入一个字符串,输出判断结果. #include"stdio.h" #include"stdlib.h" typedef char ElemType; typedef struct stnode { ElemType data; struct stnode *next; }StNode, *LinkStack; int huiwen(ch

判断一个字符串是不是一个合法的IP地址

最近在笔试的时候遇到碰一道算法题, 要求判断一个字符串是不是合法的ip地址. 将我的思路发出来分享一下,不一定正确,也不一定是最优的方法.希望能分享一些交流 要求用java或者c来实现,我的java代码: 1 public class Test_ip { 2 //程序入口 3 public static void main(String[] args) { 4 Solution s = new Solution(); // 业务逻辑放在Solution类里面 5 //String test_st